C++迭代器

#include<iostream>#include<vector>#include<string>usingnamespacestd;intmain(){strings... #include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{ string s;
vector<string> ivec;
while(getline(cin,s))
ivec.push_back(s);
for(auto it=ivec.begin() ;it!=ivec.end() &&!it->empty();++it){
for(auto it2=it->begin();it2!=it->end();++it2)
*it2=toupper(*it2);
cout<<*it<<endl;

}
return 0;
}

for(auto it2=it->begin();it2!=it->end();++it2)
*it2=toupper(*it2);
这里有些不太明白,it是迭代器,那it2是什么?为什么it2能解引用?
展开
 我来答
认不倒你
推荐于2016-01-23 · TA获得超过666个赞
知道小有建树答主
回答量:820
采纳率:50%
帮助的人:357万
展开全部

不懂类型就不要用auto

for(vector<string>::iterator it=ivec.begin() ;it!=ivec.end() &&!it->empty();++it){
for(string::iterator it2=it->begin();it2!=it->end();++it2)
    *it2=toupper(*it2);
cout<<*it<<endl;
}

it 是 vector<string>的迭代器, *it 类型为 string&

it2 是string的迭代器,*it2为 char&

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式