关于迭代器的,不明白咋回事

关于迭代器的,不明白怎么回事~刚学C++,第一次发帖问问题~关于迭代器的定义,下面一段代码为什么会提示错误,

关于迭代器的,不明白怎么回事~
刚学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定义迭代器有什么不同么?

[解决办法]
每种容器都有自己的迭代器

vector<string>和string 是两个不同的容器 他们的迭代器肯定不一样,但是使用方法是一样的
[解决办法]
vector<string>::iterator it=s.begin();

这个当然会报错,你的本意是用一个迭代器在 string对象里迭代,而这个it却成了在一个vector对象中迭代
[解决办法]
vector是一种容器,string也是一种容器,他们都有自己的iterator
[解决办法]
原来如此