标准库容器

容器类

标准库容器
容器类型 说明
序列型容器 deque(双端序列) vecor(变长数组) list(双向链表)
转换序列型容器 stack(栈) queue(队列) priority_stack(优先队列)
关联型容器 set(集合) map(映射) bitset(整数专用集合)

​ 此外,还有setmap多重值变体multisetmultimap

容器通用标准

​ 记C为容器类型,则:

容器的基本要求
C::value_type 容器储存的数据类型
C::reference 容器数据的引用类型
C::const_reference 容器数据的只读引用类型
C::size_type 容器容量类型,一般是一个size_t
size() 返回当前容器的元素的个数
max_size() 返回容器最大可容元素数
empty() 返回容器是否为空
swap(C& a) 用于和另一个同类型容器互换内容

​ 此外,标准库容器还通用了一套迭代器界面:

| C::iterator | 迭代器类型 | | —————— | —————————————— | | C::const_iterator | 只读迭代器 | | C::difference_type | 用于迭代器的跳转,如果容器不支持,用处不大 | | begin() | 指向容器序列首元素的迭代器 | | end() | 指向容器序列尾元素的迭代器 |

对于能够提供反向迭代器的容器:

| C::reverse_iterator | 反向迭代器类型 | | ——————- | ————– | | C::const_reverse_iterator|只读反向迭代器类型| |rbegin()|指向容器序列尾元素的迭代器| |rend()|指向容器首元素的迭代器|

​ 此外,C++11标准还增加了四个成员函数cbegin(),cend(),crbegin(),crend()返回对应的只读迭代器。

一、序列型容器

​ 以S代表序列型容器。

构造函数

  1. S(a,b)

    该构造函数将构造a个含b对象的节点。如果忽略b,将使用容器类型的默认值。

  2. S(i,j)

    其中,i、j为任意迭代器对象。该构造函数将构造一个包含迭代器i、j所指范围[i,j)内所有数据的副本的容器。