#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;
}
#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++标准的支持的所不同的原因!
关于这个还要多谢很多大哥的指点!在此谢过!