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能解引用? 展开
#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能解引用? 展开
1个回答
展开全部
不懂类型就不要用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&
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询