priority_queue (STL/CLR)

模板类描述对象控件具有有限的访问组件的更改长的有序序列。 使用容器适配器 priority_queue 管理一个基础容器作为优先级队列。

在如下解释, GValue 相同。 Value ,除非后者是 ref 类型,因此,在与 Value^情况下。 同样, GContainer 相同。 Container ,除非后者是 ref 类型,因此,在与 Container^情况下。

template<typename Value,
    typename Container>
    ref class priority_queue
        System::ICloneable,
        Microsoft::VisualC::StlClr::IPriorityQueue<GValue, GContainer>
    { ..... };

参数


  • 受控序列中的元素的类型。

  • 容器
    基础容器的类型。

成员

类型定义

说明

priority_queue::const_reference (STL/CLR)

常量的类型对元素。

priority_queue::container_type (STL/CLR)

基础容器的类型。

priority_queue::difference_type (STL/CLR)

带符号距离的类型两个元素间的。

priority_queue::generic_container (STL/CLR)

泛型接口的类型容器适配器的。

priority_queue::generic_value (STL/CLR)

一个元素的类型泛型接口的容器适配器的。

priority_queue::reference (STL/CLR)

引用的类型的元素。

priority_queue::size_type (STL/CLR)

带符号距离的类型两个元素间的。

priority_queue::value_compare (STL/CLR)

两个元素的排序委托。

priority_queue::value_type (STL/CLR)

元素的类型。

成员函数

说明

priority_queue::assign (STL/CLR)

替换所有元素。

priority_queue::empty (STL/CLR)

测试组件是否不存在。

priority_queue::get_container (STL/CLR)

访问基础容器。

priority_queue::pop (STL/CLR)

移除 hghest 优先级元素。

priority_queue::priority_queue (STL/CLR)

构造容器对象。

priority_queue::push (STL/CLR)

添加新元素。

priority_queue::size (STL/CLR)

计算元素的数量。

priority_queue::top (STL/CLR)

访问最高优先级的元素。

priority_queue::to_array (STL/CLR)

复制控件序列到新数组。

priority_queue::value_comp (STL/CLR)

复制两个元素的排序委托。

属性

说明

priority_queue::top_item (STL/CLR)

访问最高优先级的元素。

运算符

说明

priority_queue::operator= (STL/CLR)

替换控件序列。

接口

接口

说明

ICloneable

重复的对象。

IPriorityQueue<值,容器>

维护泛型容器适配器。

备注

对象分配并通过一个基础容器序列中未使用记忆字段中,键入控件 Container,存储 Value 元素和提高在要求。 它使该顺序排序作为堆,使用可将最高优先级的元素 (顶部元素) 便于访问和。 对象绑定到驱动器新元素和弹出最高优先级的元素的访问,实现优先级队列。

它通过调用类型 priority_queue::value_compare (STL/CLR)一个单元的委托对象控件的对象排序序列。 ,当构造 priority_queue 时,可以指定存储的委托对象;如果不指定委托对象,则默认值为比较 operator<(value_type, value_type)。 您访问该存储区的对象通过调用成员函数 priority_queue::value_comp (STL/CLR)()。

此委托对象必须实施强弱顺序对类型 priority_queue::value_type (STL/CLR)的值。 这意味着,任何两个密钥的 X 和 Y:

value_comp()(X, Y) 返回在每同一个布尔值结果调用。

如果 value_comp()(X, Y) 为 true,则 value_comp()(Y, X) 一定是错误的。

如果 value_comp()(X, Y) 为 true,则 X 被视为排序。 Y之前。

如果 !value_comp()(X, Y) && !value_comp()(Y, X) 为 true,则 X 和 Y 添加具有等效排序。

对于前面放置一个控件序列的 Y 的所有元素 X , key_comp()(Y, X) 为 false。 (对于默认委托对象,而不会减小值。)

最高优先级的元素可能与不在其他元素之前经过排序的组件之一。

这是因为基础容器保持元素顺序为堆:

容器必须支持随机访问迭代器。

等效排序的元素比它们被推送了可能以不同顺序弹出。 (排序不稳定。)

因此,基础容器的候选包括 deque (STL/CLR)vector (STL/CLR)

要求

标题: <cliext/队列>

命名空间: cliext

请参见

参考

deque (STL/CLR)

queue (STL/CLR)

stack (STL/CLR)

vector (STL/CLR)

其他资源

STL/CLR库参考