首页 > 代码库 > C++ Primer 第四版读书笔记(八)之顺序容器(续)

C++ Primer 第四版读书笔记(八)之顺序容器(续)

3.6 访问元素

如果容器非空,那么容器类型的front和back成员将返回容器内第一个或最后一个元素的引用。

访问顺序容器内元素的操作
c.back()返回容器c的最后一个元素的引用。如果c为空,则该操作未定义
c.front()返回容器c的第一个元素的引用。如果c为空,则该操作未定义
c[n]返回下标为n的元素的引用
如果n<0或n>c.size(),则该操作未定义
只适用于vector和deque容器
c.at[n]返回下标为n的元素的引用。如果下标越界,则该操作未定义
只适用于vector和deque容器

3.7 删除元素

删除顺序容器内元素的操作
c.erase(p)删除迭代器p所指向的元素
返回一个迭代器,它指向被删除元素后面的元素。如果p指向容器内的最后一个元素,则
返回的迭代器指向容器的超出末端的下一位置。如果p本身就是指向超出末端的下一位置
的迭代器,则该函数未定义
c.erase(b, e)删除迭代器b和e所标记范围内的所有元素
返回一个迭代器,它指向被删除元素段后面的元素。如果e本身就是指向超出末端的下一位置的
迭代器,则返回的迭代器也指向容器的超出末端的下一位置
c.clear()删除容器c内的所有元素。返回void
c.pop_back()删除容器c的最后一个元素。返回void。如果c为空容器,则该函数未定义
c.pop_front()删除容器c的第一个元素。返回viod。如果c为空容器,则该函数未定义

3.7.1 删除第一个或最后一个元素

pop_front和pop_back函数用于删除容器内的第一个和最后一个元素。但vector容器类型不支持pop_front操作。这些操作删除指定的元素并返回void。

pop_front和pop_back函数的返回值并不是删除的元素值,而是void。要获取删除的元素值,则必须在删除元素之前调用front或back函数。

3.7.2 删除容器内的一个元素

erase操作不会检查它的参数。程序员必须确保用作参数的迭代器或迭代器范围是有效的。

3.8 赋值与swap

与赋值相关的操作符都作用于整个容器。处swap操作外,其他操作都可以用erase和insert操作实现。赋值操作符首先删除其做操作数容器中的元素,然后将右操作数容器的所有元素插入到左边容器中。

C++ Primer 第四版读书笔记(八)之顺序容器(续)