目录

C++ Library - <queue>

队列简介

队列是一种数据结构,设计用于在FIFO(先进先出)环境中运行。 队列元素从后端插入并从前端移除。

队列类是容器适配器。 容器是保存相同类型数据的对象。 可以从不同的序列容器创建队列。 容器适配器不支持迭代器,因此我们不能将它们用于数据操作。 但是它们分别支持push()pop()成员函数用于数据插入和删除。

定义 (Definition)

下面是头文件中std :: queuer的定义

template <class T, class Container = deque<T> > class queue;

参数 (Parameters)

  • T - 包含的元素的类型。

    T可以由包括用户定义类型的任何其他数据类型代替。

  • Container - 基础容器对象的类型。

成员类型 (Member types)

以下成员类型可以用作参数或按成员函数返回类型。

Sr.No. 会员类型 定义
1value_type T(模板的第一个参数)
2container_type 模板的第二个参数
3size_typesize_t
4referencevalue_type&
5const_reference const value_type&
6difference_typeptrdiff_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)

下面是头文件中std :: priority_queue的定义

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. 会员类型 定义
1value_type T(模板的第一个参数)
2container_type 模板的第二个参数
3size_typesize_t
4referencevalue_type&
5const_reference const value_type&
6difference_typeptrdiff_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的内容进行交换。

↑回到顶部↑
WIKI教程 @2018