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>
{ ..... };
参数
值
受控序列中的元素的类型。容器
基础容器的类型。
成员
类型定义 |
说明 |
---|---|
常量的类型对元素。 |
|
基础容器的类型。 |
|
带符号距离的类型两个元素间的。 |
|
泛型接口的类型容器适配器的。 |
|
一个元素的类型泛型接口的容器适配器的。 |
|
引用的类型的元素。 |
|
带符号距离的类型两个元素间的。 |
|
两个元素的排序委托。 |
|
元素的类型。 |
成员函数 |
说明 |
---|---|
替换所有元素。 |
|
测试组件是否不存在。 |
|
访问基础容器。 |
|
移除 hghest 优先级元素。 |
|
构造容器对象。 |
|
添加新元素。 |
|
计算元素的数量。 |
|
访问最高优先级的元素。 |
|
复制控件序列到新数组。 |
|
复制两个元素的排序委托。 |
属性 |
说明 |
---|---|
访问最高优先级的元素。 |
运算符 |
说明 |
---|---|
替换控件序列。 |
接口
接口 |
说明 |
---|---|
重复的对象。 |
|
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