一、list容器迭代器函数
函数 | 性能 |
---|---|
begin() | 返回指向容器中第一个元素的双向迭代器(正向迭代器) |
end() | 返回指向容器中最初一个元素所在位置的下一个地位的双向迭代器。(正向迭代器) |
rbegin() | 返回指向最初一个元素的反向双向迭代器 |
rend() | 返回指向第一个元素所在位置前一个地位的反向双向迭代器 |
cbegin() | 和 begin() 性能雷同,只不过在其根底上,正向迭代器减少了 const 属性,即不能用于批改元素 |
cend() | 和 end() 性能雷同,只不过在其根底上,正向迭代器减少了 const 属性,即不能用于批改元素 |
crbegin() | 和 rbegin() 性能雷同,只不过在其根底上,反向迭代器减少了 const 属性,即不能用于批改元素 |
crend() | 和 rend() 性能雷同,只不过在其根底上,反向迭代器减少了 const 属性,即不能用于批改元素 |
具体的性能不再阐明,可参考array容器中的阐明。list容器的迭代器和之前的array、vector等最大的不同在于:它的迭代器类型为双向迭代器,而不再是随机拜访迭代器。
如果p1,p2都是双向迭代器,那么
反对++p1、 p1++、 p1--、 p1++、 *p1、 p1==p2 以及 p1!=p2;
不反对p1[i]、p1-=i、 p1+=i、 p1+i 、p1-i、p1<p2、 p1>p2、 p1<=p2、 p1>=p2。
二、实例
1、遍历list容器元素
i = 0; listIter = listInt.begin(); for (; listIter != listInt.end(); listIter++) { std::cout << " sort listInt[" << i++ << "]=" << *listIter << std::endl; }
其余的函数性能和vector等相似,不再阐明应用办法
留神点:
1、list 容器不反对随机拜访,未提供下标操作符 [] 和 at() 成员函数,也没有提供 data() 成员函数
2、 front() 和 back() 成员函数,能够别离取得 list 容器中第一个元素和最初一个元素的援用模式,必要时还能批改其值
3、若心愿拜访list容器其余地位的元素,只能通过list容器的迭代器,也能够通过迭代器对指定元素的值进行批改