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用,但编译同不过 谁帮忙解决下代码哪出问题了,求大神解答!!万分感谢 展开
 我来答
Valder¢bc
2014-06-25 · 超过58用户采纳过TA的回答
知道答主
回答量:103
采纳率:0%
帮助的人:148万
展开全部
。。首先你的迭代器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; }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式