随机存取迭代器(random access iterators)有vector、deques,可以使用算术运算
即
vector coll;
for(int i=20;i<=40;++i)
coll.push_back(i);
vector::iterator pos25=find(coll.begin(),coll.end(),25);
vector::iterator pos35=find(coll.begin(),coll.end(),35);
若使用max_element(pos25,pos35);由于算法处理的区间都是半开区间,即含起始括号但不含括号结尾元素的位置,即[begin,end)。这里只能找到的最大值是34,而非我们想要的35。那么就要用下面的方法,将迭代器位置移到pos35的下一位置
max_element(pos25,++pos35);//或者max_element(pos25,pos35+1);
而list只可使用前者,即以++取得pos35的下一个位置
而vectors、deques、lists都属于序列式容器
c++标准程序库----第五章
最新推荐文章于 2020-03-27 20:33:39 发布