标准库容器
容器类
| 容器类型 | 说明 | ||
|---|---|---|---|
| 序列型容器 | deque(双端序列) | vecor(变长数组) | list(双向链表) |
| 转换序列型容器 | stack(栈) | queue(队列) | priority_stack(优先队列) |
| 关联型容器 | set(集合) | map(映射) | bitset(整数专用集合) |
此外,还有set和map的多重值变体:multiset和multimap
容器通用标准
记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代表序列型容器。
构造函数
S(a,b)
该构造函数将构造a个含b对象的节点。如果忽略b,将使用容器类型的默认值。
S(i,j)
其中,i、j为任意迭代器对象。该构造函数将构造一个包含迭代器i、j所指范围[i,j)内所有数据的副本的容器。