c++迭代器使用问题
#include<stdafx.h>#include<iostream>#include<iomanip>#include<string>#include<cctype>...
#include <stdafx.h> #include<iostream> #include <iomanip> #include <string> #include <cctype> #include <vector> using namespace std; int b=0; int main() { int i=0; vector<string> text; string copy; while(cin>>copy) text.push_back(copy); for(vector<string>::iterator iter=text.begin();iter!=text.end();iter++) { for(;(*iter)!=(*iter).end();(*iter)++) if(islower(**iter)) (**iter)=toupper(**iter); cout<<*iter<<" "; if((i+1)%8==0) cout<<endl; i++; } system("pause"); return 0; } 应该是第2个循环错了,我想试试迭代器能不能像指针那样**iter用,但编译同不过 谁帮忙解决下代码哪出问题了,求大神解答!!万分感谢
展开
1个回答
展开全部
。。首先你的迭代器vector<string>::iterator iter是指向一个string的所以*iter就是一个string 你对string再 * ->**iter是什么意思呢?应该这样用 #include<iostream> #include <iomanip> #include <string> #include <cctype> #include <vector> using namespace std; int b=0; int main() { int i=0; vector<string> text; string copy; while(cin>>copy) text.push_back(copy); for(vector<string>::iterator iter=text.begin();iter!=text.end();iter++) { string::iterator iterS = (*iter).begin(); for(;iterS!=(*iter).end();iterS++) if(islower(*iterS)) (*iterS)=toupper(*iterS); cout<<*iterS<<" "; if((i+1)%8==0) cout<<endl; i++; } system("pause"); return 0; }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询