【C++ Primer】【学习笔记】【第九章】顺序容器之:顺序容器的操作

一、容器定义的类型别名
容器定义的类型别名
说明
size_type
无符号整数
iterator
容器类型的迭代器类型
const_iterator
元素的只读迭代器类型
reverse_iterator
按逆序寻址元素的迭代器
const_reverse_iterator
元素的只读逆序迭代器类型
difference_type
有符号整数,用于存储两个迭代器的差值,可以是负数
value_type
元素类型
reference
元素的左值类型,和value_type&意思相同
const_reference
元素的常量左值类型,和const value_type&意思相同

二、容器的begin和end成员
容器的begin和end操作
说明
c.begin() 返回迭代器,指向容器c的第一个元素
c.end()
返回迭代器,指向容器c的最后一个元素的下一个位置
c.rbegin()
返回逆序迭代器,指向容器c的最后一个元素
c.rend()
返回逆序迭代器,指向容器c的第一个元素的前一个位置

三、在顺序容器中添加元素
在顺序容器中添加元素的操作
说明
c.push_back(t)
在容器c的尾部添加元素,元素值为t。返回void类型。
c.push_front(t)
在容器c的前端添加元素,元素值为t。返回void类型。 只适用于list和deque容器,vector容器没有此操作。
c.insert(p, t)
在迭代器p所指向的元素前面插入值为t的元素。 返回指向新添加元素的迭代器。
c.insert(p, n, t)
在迭代器p所指向的元素前面插入n个值为t的元素。返回void类型。
c.insert(p, b, e)
在迭代器p所指向的元素前面插入由迭代器b和e标记范围内的元素。返回void类型。

四、容器的关系操作符
关系操作符
判定依据
==
!=
如果两个容器具有相同的长度并且所有元素都相等,则这两个容器相等;否则,就不等。
>
<
根据两个容器中的第一个不相等的元素,该元素的大小就是容器的大小;特别地,如果一个容器是另一个容器的初始子序列,则短的容器小于长的容器。

五、容器大小的操作
顺序容器的大小操作
说明
c.size()
返回容器c中的元素个数,返回类型为c::size_type
c.max_size()
返回容器c可容纳的最多元素个数,返回类型为c::size_type
c.empty()
容器为空返回true,否则返回false
c.resize(n)
调整容器c的容量,使其能够容纳n个元素。如果n小于c.size(),则删除多出来的元素;否则,添加采用值初始化的新元素。
c.resize(n, t)
调整容器c的容量,使其能够容纳n个元素。如果n小于c.size(),则删除多出来的元素;否则,添加 采用值为t的 新元素。

六、访问容器中的元素
顺序容器元素的访问操作
说明
c.back()
返回容器c的最后一个元素的引用。如果容器为空,则该操作未定义。
c.front()
返回容器c的第一个元素的引用。如果容器为空,则该操作未定义。
c(n)
返回下标为n的元素的引用。如果n<0或者n>=c.size(),则该操作未定义,会产生run-time error。只适用于vector和deque容器。
c.at(n)
返回下标为n的元素的引用。如果n<0或者n>=c.size(),则该操作未定义,会抛出out_of_range异常。只适用于vector和deque容器。

七、删除容器中的元素
顺序容器元素的删除操作
说明
c.erase(p)
删除迭代器p所指向的元素;返回一个迭代器,指向被删除元素后面的元素。
c.erase(b, e)
删除迭代器b和e所标记范围内的所有元素;返回一个迭代器,指向被删除元素段后面的元素。
c.clear()
删除容器c内的所有元素;返回void。
c.pop_back()
删除容器c的最后一个元素;返回void。如果c为空容器,则该函数未定义。
c.pop_front()
删除容器c的第一个元素;返回void。如果c为空容器,则该函数未定义。 只适用于list或者deque容器。

八、赋值与swap
顺序容器的赋值操作
说明
c1 = c2
删除容器c1的所有元素,然后将c2的元素复制给c1。c1和c2的类型(容器类型和元素类型)必须相同。
c1.swap(c2)
交换容器c1和c2的内容。
c.assign(b, e)
重新设置c的元素:将迭代器b和e标记的范围内的所有元素复制到c中。b和e必须不是指向c中元素的容器。
c.assign(n, t)
重新设置c的元素:n个值为t的元素。


你可能感兴趣的:(C++)