Jie

心若无尘,一花一世界,一鸟一天堂;心若静,已如涅磐,风声物语,皆可成言.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

iterator类对象和普通指针

Posted on 2009-06-02 12:43  JieNet  阅读(601)  评论(0编辑  收藏  举报
#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++标准的支持的所不同的原因!

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