C++ Library - <queue>
队列简介
队列是一种数据结构,设计用于在FIFO(先进先出)环境中运行。 队列元素从后端插入并从前端移除。
队列类是容器适配器。 容器是保存相同类型数据的对象。 可以从不同的序列容器创建队列。 容器适配器不支持迭代器,因此我们不能将它们用于数据操作。 但是它们分别支持push()和pop()成员函数用于数据插入和删除。
定义 (Definition)
下面是
template <class T, class Container = deque<T> > class queue;
参数 (Parameters)
T - 包含的元素的类型。
T可以由包括用户定义类型的任何其他数据类型代替。
Container - 基础容器对象的类型。
成员类型 (Member types)
以下成员类型可以用作参数或按成员函数返回类型。
Sr.No. | 会员类型 | 定义 |
---|---|---|
1 | value_type | T(模板的第一个参数) |
2 | container_type | 模板的第二个参数 |
3 | size_type | size_t |
4 | reference | value_type& |
5 | const_reference | const value_type& |
6 | difference_type | ptrdiff_t |
来自的函数
下面是
构造函数 (Constructors)
Sr.No. | 方法和描述 |
---|---|
1 | queue::queue 默认构造函数 构造一个空元组对象,其元素为零。 |
2 | queue::queue initialize构造函数 构造一个队列对象,并通过ctnr的副本分配内部容器。 |
3 | queue::queue move构造函数 使用move语义构造具有其他内容的队列。 |
4 | queue::queue copy构造函数 构造一个队列,其中包含现有队列中其他元素的副本。 |
Destructor
Sr.No. | 方法和描述 |
---|---|
1 | queue::~queue 通过释放容器内存来销毁队列。 |
成员函数 (Member functions)
Sr.No. | 方法和描述 |
---|---|
1 | queue::back 返回对队列的最后一个元素的引用。 |
2 | queue::emplace 在队列末尾构造并插入新元素。 |
3 | queue::empty 测试队列是否为空。 |
4 | queue::front 返回对队列的第一个元素的引用。 |
5 | queue::operator= copy version 通过替换旧内容将新内容分配给队列。 |
6 | queue::operator= 移动版本 通过替换旧内容将新内容分配给队列。 |
7 | queue::pop 删除队列的前端元素。 |
8 | queue::push copy version 在队列末尾插入新元素。 |
9 | queue::push move version 在队列末尾插入新元素。 |
10 | queue::size 返回队列中存在的元素总数。 |
11 | queue::swap 使用另一个队列的内容交换队列的内容。 |
非成员重载函数 (Non-member overloaded functions)
Sr.No. | 方法和描述 |
---|---|
1 | operator== 测试两个队列是否相等。 |
2 | operator!= 测试两个队列是否相等。 |
3 | operator< 测试第一个队列是否小于其他队列。 |
4 | operator<= 测试第一个队列是否小于或等于其他队列。 |
5 | operator> 测试第一个队列是否大于其他队列。 |
6 | operator>= 测试第一个队列是否大于或等于其他队列。 |
7 | swap 交换两个队列的内容。 |
priority_queue简介
优先级队列是保持优先级的队列数据结构。 优先级队列类似于堆数据结构,其中元素可以按任何顺序插入,并且始终首先检索最大堆元素。
定义 (Definition)
下面是
template <class T, class Container = vector<T>,
class Compare = less<typename Container::value_type> < class priority_queue;
参数 (Parameters)
T - 包含的元素的类型。
T可以由包括用户定义类型的任何其他数据类型代替。
Container - 基础容器对象的类型。
Compare - 用于对priority_queue进行排序的比较对象。
这可以是一个函数指针或函数对象,可以比较它的两个参数。
成员类型 (Member types)
以下成员类型可以用作参数或按成员函数返回类型。
Sr.No. | 会员类型 | 定义 |
---|---|---|
1 | value_type | T(模板的第一个参数) |
2 | container_type | 模板的第二个参数 |
3 | size_type | size_t |
4 | reference | value_type& |
5 | const_reference | const value_type& |
6 | difference_type | ptrdiff_t |
来自的函数
下面是
构造函数 (Constructors)
Sr.No. | 方法和描述 |
---|---|
1 | priority_queue::priority_queue 默认构造函数 使用零元素构造一个空的priority_queue。 |
2 | priority_queue::priority_queue 初始化构造函数 构造一个priority_queue对象,并通过ctnr的副本分配内部容器。 |
3 | priority_queue::priority_queue 范围构造函数 构造一个priority_queue,其中包含从头到尾范围内的任意数量的元素。 |
4 | priority_queue::priority_queue 移动构造函数 使用move语义构造priority_queue和其他内容。 |
5 | priority_queue::priority_queue 复制构造函数 构造一个priority_queue,其中包含现有priority_queue other中存在的每个元素的副本。 |
Destructor
Sr.No. | 方法和描述 |
---|---|
1 | priority_queue::~priority_queue 通过释放容器内存来销毁priority_queue。 |
成员函数 (Member functions)
Sr.No. | 方法和描述 |
---|---|
1 | priority_queue::emplace 在priority_queue中按排序顺序构造和插入新元素。 |
2 | priority_queue::empty 测试pritority_queue是否为空。 |
3 | priority_queue::operator= 复制版本 通过替换旧内容为priority_queue分配新内容。 |
4 | priority_queue::operator= 移动版本 通过替换旧内容为priority_queue分配新内容。 |
5 | priority_queue::pop 删除priority_queue的前面元素。 |
6 | priority_queue::push 副本版本 按排序顺序插入新元素。 |
7 | priority_queue::push move version 按排序顺序插入新元素。 |
8 | priority_queue::size 返回priority_queue中存在的元素总数。 |
9 | priority_queue::swap 将priority_queue的内容与另一个priority_queue的内容进行交换。 |
10 | priority_queue::top 返回对priority_queue的第一个元素的引用 |
非成员重载函数 (Non-member overloaded functions)
Sr.No. | 方法和描述 |
---|---|
1 | swap 将priority_queue的内容与另一个priority_queue的内容进行交换。 |