容器类
标准库中提供了以下若干容器类,分别适用于不同的用途。
容器类 | 所属头文件 | 使用格式 | 功能 |
---|---|---|---|
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_type | T ,获取元素的类型 |
V::reference | T& ,元素的引用类型 |
V::const_reference | const T& |
V::iterator | 指向T 的迭代器,行为与T* 类似 |
V::const_iterator | 指向cosnt T 的迭代器 |
V::different_type | 用于表示两个迭代器之间的距离的符号整型 |
V::size_type | 无符号整型,用于表示容器对象的长度、元素数目和下标 |
以下方法针对全部容器都可以使用。
方法 | 功能 |
---|---|
begin() | 返回指向第一个元素的迭代器 |
end() | 返回指向超尾的迭代器 |
rbegin() | 返回指向超尾的反向迭代器 |
rend() | 返回指向第一个元素的反向迭代器 |
size() | 返回元素数目 |
maxsize() | 返回容器的最大长度 |
empty() | 判断容器是否为空 |
swap() | 交换两个容器的内容 |