#include<iostream>
#include
<vector>
#include
<iterator>
#include
<string>
using namespace std;
int main()
{
vector
<string>vec;
string str1("aaa"),str2("bbb"),*p;
vector
<string>::iterator it;
vec.insert(vec.begin(),str1);
vec.insert(vec.end(),str2);
for(it=vec.begin();it<vec.end();it++)
cout
<<*it<<endl;
cout
<<endl;
for(p=vec.begin();p<vec.end();p++)
cout
<<*p<<endl;
return 0;
}




 

迭代器是广义指针,而指针满足所有迭代器要求。迭代器是STL算法的接口,而指针是迭代器,因此STL算法可以使用指针来对基于指针的非STL容器进行操作。
iterator 是一个 class, p 是一个指针,不要随便把 class 和指针混淆起来。

至于上面的例子,有的IDE能够通过编译(VC++6),有的不行(VC++.NET2003),只能说是实现对C++标准的支持的所不同的原因!

关于这个还要多谢很多大哥的指点!在此谢过!

相关文章: