新微赢技术网

标题: [求助]怎样返回当前迭代器的下标? [打印本页]

作者: jane    时间: 2009-11-5 01:17
标题: [求助]怎样返回当前迭代器的下标?
如题。
vector<int> a(10);
vector<int>::const_iterator cit;
.......
cit对应的下标?
作者: 残恋思香    时间: 2009-11-5 01:17
迭代器最好用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()

迭代器很好用的,它是范性编程的实现,再用对应的下标来操作岂不是很多余 你回忆下数组和指针的关系吧 当然用指针操作数组又快又方便了
作者: 凤蔷¤蹁跹    时间: 2009-11-5 01:17
以下是引用游乐园在2007-4-18 19:18:13的发言:

迭代器最好用iterator

.....

老大,问下,为什么最好用iterator?

const_iterator和iterator不是各有各的作用吗?

能详细说下嘛?
作者: 天使替我爱你    时间: 2009-11-5 01:17
以下是引用aipb2007在2007-4-18 19:30:28的发言:


老大,问下,为什么最好用iterator?

const_iterator和iterator不是各有各的作用吗?

能详细说下嘛?
嗯 说的没错 这些迭代器是各有各的用途

但容器的成员函数的参数里的迭代器都是iterator类型 而不是const_iterator 或reverse_iterator...哦 这就影响到STL的通用了

我也不好长篇大论的讲 毕竟知识有限 建议你看看优秀STL范型编程的条款第26条:

http://stl.winterxy.com/html/item_26.html
作者: DJ爱有多痛DJ    时间: 2009-11-5 01:17
谢谢,但是真的没有那样的方法么?




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2