一、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 容器的迭代器,也能够通过迭代器对指定元素的值进行批改