容器类

标准库中提供了以下若干容器类,分别适用于不同的用途。

容器类所属头文件使用格式功能
vector<vector>std::vector<type>快速随机访问元素
list<list>std::list<type>快速插入与删除元素
deque<deque>std::deque<type>双端队列
stack<stack>std::stack<type>后入先出的栈
queue<queue>std::queue<type>先入先出的队列

容器类都使用泛型来存储内容,并支持一些通用的方法来访问其中的内容。容器类中元素类型必须能够支持赋值运算,并且能够可以复制,即存在使用一个同类型实例创建新实例的构造函数。

容器类一般都具有以下类型,用于辅助容器的使用。下表中以V表示容器类,T表示容器中的元素类型。

类型值与功能
V::value_typeT,获取元素的类型
V::referenceT&,元素的引用类型
V::const_referenceconst T&
V::iterator指向T的迭代器,行为与T*类似
V::const_iterator指向cosnt T的迭代器
V::different_type用于表示两个迭代器之间的距离的符号整型
V::size_type无符号整型,用于表示容器对象的长度、元素数目和下标

以下方法针对全部容器都可以使用。

方法功能
begin()返回指向第一个元素的迭代器
end()返回指向超尾的迭代器
rbegin()返回指向超尾的反向迭代器
rend()返回指向第一个元素的反向迭代器
size()返回元素数目
maxsize()返回容器的最大长度
empty()判断容器是否为空
swap()交换两个容器的内容