关于迭代器的,不明白怎么回事~

麦兜睡觉觉 2012-01-20 05:56:07
刚学C++,第一次发帖问问题~
关于迭代器的定义,下面一段代码为什么会提示错误,请求各位高手帮助~~
#include<iostream>
#include<string>
#include<vector>
#include<cctype>
using namespace std;
int main()
{
string s("Expressions in C++ are composed...");
vector<string>::iterator it=s.begin();
//这样定义编译就会报错的,但是写成string::iterator it=s.begin();就对了
while(it!=s.end() && !isspace(*it))
{
*it=toupper(*it);
++it;
}
cout<<s<<endl;

return 0;
}

问一下vector<string>::iterator和string::iterator定义迭代器有什么不同么?
...全文
63 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
li08240418 2012-01-20
  • 打赏
  • 举报
回复
原来如此
昵称很不好取 2012-01-20
  • 打赏
  • 举报
回复
vector是一种容器,string也是一种容器,他们都有自己的iterator
Kaile 2012-01-20
  • 打赏
  • 举报
回复
vector<string>::iterator it=s.begin();

这个当然会报错,你的本意是用一个迭代器在 string对象里迭代,而这个it却成了在一个vector对象中迭代
麦兜睡觉觉 2012-01-20
  • 打赏
  • 举报
回复
是不是在定义vector<string>类型时的迭代器用vector<string>::iterator迭代器;
然后string类型的数据迭代器就用string::iterator? 求指点!谢谢了…
独自听枫 2012-01-20
  • 打赏
  • 举报
回复
每种容器都有自己的迭代器

vector<string>和string 是两个不同的容器 他们的迭代器肯定不一样,但是使用方法是一样的

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧