C++Primer笔记之顺序容器的使用详解
本文导语: 顺序容器,它将单一类型元素聚集起来成为容器,然后根据位置来存储和访问这些元素,这就是顺序容器。标准库里定义了三种类型:vector(支持快速随机访问)、list(支持快速插入、删除)、deque(双端队列)容器只定义了少量...
顺序容器,它将单一类型元素聚集起来成为容器,然后根据位置来存储和访问这些元素,这就是顺序容器。标准库里定义了三种类型:vector(支持快速随机访问)、list(支持快速插入、删除)、deque(双端队列)容器只定义了少量操作,大多数额外的操作由算法库提供。容器内元素的类型约束;1、元素类型必须支持赋值运算;2、元素类型的对象必须可以复制。这是容器元素类型的最低要求,如果想支持一些其他特殊要求,则必须具备相关的性质。
可以定义容器的容器vector< vector > lines;//必须使用"> >"中间的空格,否则会出现变异错误
迭代器运算:
关系操作符只适用于vector和deque容器,它们可以根据元素位置直接有效地访问指定的容器元素。而list容器的迭代器既不支持算术运算(加法或者减法),也不支持关系运算(),它只提供前置和后置的自增、自减运算以及相等(不等)运算。
迭代器范围:
c++使用一对迭代器标记迭代器范围,通常命名为first和last或beg和end。该范围内的元素包括迭代器first指向的元素,以及从first开始一直到迭代器last指向的位置之前的所有元素,此类元素范围称为左闭合区间[first,last)。
顺序容器的操作:
在容器中添加元素;在容器中删除元素;设置容器大小;获取容器内的第一个和最后一个元素。对于begin()、end()、rbegin()、 rend()四个操作,均有const版本。如果容器时const,则其返回类型要加上const_前缀。c.push_back(t) 在容器c的尾部添加值为t的元素,返回void类型。c.push_front(t) 在容器c的前端添加值为t的元素,返回void类型。但是只有list和deque具有这样的性质。
//容器的顺序遍历
vector::reverse_iterator iterReverse=vect.rbegin();//定义反向迭代器while(iterReverse!=vect.rend())
{
cout