对c++ 中Iterator的疑惑
请在c++的STL中Iterator是什么,我现在所知道的是它具有类似于指针的功能,并且在容器中有很重要的作用,但它究竟是什么,能否给一段具体的代码。再问下可不可以获得S...
请在c++的STL中Iterator是什么,我现在所知道的是它具有类似于指针的功能,并且在容器中有很重要的作用,但它究竟是什么,能否给一段具体的代码。再问下可不可以获得STL的源代码呢?谢谢!
展开
2个回答
展开全部
Iterator是访问器,类似与指针,具有指针相似的功能,访问器最重要的是给所有容器提供了一个通用的访问方法,Iterator是模板类,比如有个vector
std::vector<int> vec;
//元素操作之类的
std::vector<int>::iterator it=vec.begin();
while(it!=vec.end())
{//do something}
STL可以得到源代码,比如VC中有部分源代码,GCC代码实现比较好阅读,还有STL port项目之类的
std::vector<int> vec;
//元素操作之类的
std::vector<int>::iterator it=vec.begin();
while(it!=vec.end())
{//do something}
STL可以得到源代码,比如VC中有部分源代码,GCC代码实现比较好阅读,还有STL port项目之类的
展开全部
int a[10]={1,2,3,4,5,6,7,8,9,10};
vector<int> v(a,a+9); //用数组初始化vector容器(a数组首指针,a+10数组尾指针的下一位)
vector<int>:: iterator it=v.begin(); //it是迭代器,指向v的第一个元素,相当于首指针
//begin()是vector自带的函数,返回指向第一个元素的迭代器
cout<<*it; //会输出1
it++; //迭代器自增,向后移动一个单位,结果是指向第二个元素
cout<<*it;//会输出2
//下面看一个输出容器全部元素的循环
for(vector<int>:: iterator it=v.begin();it!=v.end();++it){ //end()返回迭代器,指向最后一个元素的下一位
cout<<*it;
}
vector<int> v(a,a+9); //用数组初始化vector容器(a数组首指针,a+10数组尾指针的下一位)
vector<int>:: iterator it=v.begin(); //it是迭代器,指向v的第一个元素,相当于首指针
//begin()是vector自带的函数,返回指向第一个元素的迭代器
cout<<*it; //会输出1
it++; //迭代器自增,向后移动一个单位,结果是指向第二个元素
cout<<*it;//会输出2
//下面看一个输出容器全部元素的循环
for(vector<int>:: iterator it=v.begin();it!=v.end();++it){ //end()返回迭代器,指向最后一个元素的下一位
cout<<*it;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询