[求助]怎样返回当前迭代器的下标?
如题。
vector<int> a(10);
vector<int>::const_iterator cit;
.......
cit对应的下标?
迭代器最好用iterator
.....
int a[5]={2,3,44,56,123};
vector<int> v(a,a+5);
vecotr<int>::iterator iter=v.begin();//迭代器开始访问数组,先指向首
通过循环 for(;iter!=v.end();++iter) 来访问数组各个元素
当然如果你想知道已知元素的位置也可以
iter=find(v.begin(),v.end(),44);// 44在数组中的位置 如果数组中没有44 返回值为v.end()
迭代器很好用的,它是范性编程的实现,再用对应的下标来操作岂不是很多余 你回忆下数组和指针的关系吧 当然用指针操作数组又快又方便了
老大,问下,为什么最好用iterator?
const_iterator和iterator不是各有各的作用吗?
能详细说下嘛?
嗯 说的没错 这些迭代器是各有各的用途
但容器的成员函数的参数里的迭代器都是iterator类型 而不是const_iterator 或reverse_iterator...哦 这就影响到STL的通用了
我也不好长篇大论的讲 毕竟知识有限 建议你看看优秀STL范型编程的条款第26条:
http://stl.winterxy.com/html/item_26.html