Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

priority_queue

类模板   <queue>

template <class T, class Container = vector<T>,
  class Compare = less<typename Container::value_type> > class priority_queue;

优先队列

优先队列是一种容器适配器,根据某种严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的元素。

此队列类似于堆,其中元素可以随时插入,并且只能检索最大的堆元素(优先队列中位于top的元素)。。

优先队列是作为容器适配器实现的,容器适配器是使用特定容器类的封装对象作为其底层容器的类, 提供了一组特定的成员函数来访问其元素。 元素从特定容器的“back”弹出,也就是优先队列的top 。

基础容器可以是任何标准容器类模板或其他特定设计的容器类。容器应该可以通过随机访问迭代器访问, 并且支持以下操作:
empty
size
front
push_back
pop_front
标准容器类vector和deque满足了这些要求。 默认情况下,如果没有为特定的priority_queue类实例化指定容器类,则使用标准容器vector。

☲  模板参数


T
所包含元素的类型。
别名为成员类型 queue::value_type。
Container
存储元素的内部基础容器对象的类型。
其value_type应为T。
别名为成员类型 priority_queue::container_type。
Compare
一个二元谓词,它接受两个元素(类型为T)作为参数并返回bool类型。。
表达式comp(a,b),其中comp是该类型的对象,a和b是容器中的元素, 如果a被认为按照函数定义的严格弱排序在b之前,则返回true。 priority_queue使用这个函数来维护以保留堆属性的方式排序的元素 (即,根据这种严格的弱排序,弹出的元素是最后一个)。 这可以是一个函数指针或一个函数对象,默认值为less<T>, 它返回的值与应用小于号操作符(a<b)相同。

☉  成员类型



C++98:
成员类型 定义 注释
value_type 起始模板参数(T) 元素类型
container_type 第二个模板参数(Container) 基础容器的类型
size_type 无符号整型 通常与size_t相同

C++11:
成员类型 定义 注释
value_type 起始模板参数(T) 元素类型
container_type 第二个模板参数(Container) 基础容器的类型
reference container_type::reference 通常,value_type&
const_reference container_type::const_reference 通常,const value_type&
size_type 无符号整型 通常与size_t相同

☞ 成员函数



(constructor) 构建priority_queue对象(公众成员函数)
empty 测试容器是否为空 (公众成员函数)
size 返回元素个数(公众成员函数)
top 访问顶部元素(公共成员函数)
push 插入元素(公众成员函数)
emplace 构造并插入元素(公众成员函数)
pop 删除元素(公众成员函数)
swap 交换优先队列内容(公众成员函数)

☣ 非成员函数重载



swap(priority_queue) 交换priority_queue内容(公共成员函数)
非成员类特化:
uses_allocator<queue> 为priority_queue使用分配器(类模板)

联系我们 免责声明 关于CandCplus 网站地图