标准模板库(STL)之 priority_queue 列传
2016-04-08 11:10
330 查看
priority_queue 优先级队列,归根结底还是 queue,还是队列,只允许在尾部进入,并从头部取出元素,除此之外别无其他存取元素的途径。
缺省情况下,priority_queue 利用一个 max_heap 完成,max_heap 是一个以 vector 实现的 complete binary tree。max_heap 可以满足 priority_queue 所需要的“依权值高低自动递减排序”的特性。
既然是队列(queue),push() 从尾部插入元素,top()/pop() 则会访问/移除下一个(头部)元素。然而这里的“下一个元素“并非第一个放入的元素,而是优先级最高的元素。换句话说,priority_queue 内的元素已经根据其值进行了排序。
缺省情况下,priority_queue 利用一个 max_heap 完成,max_heap 是一个以 vector 实现的 complete binary tree。max_heap 可以满足 priority_queue 所需要的“依权值高低自动递减排序”的特性。
既然是队列(queue),push() 从尾部插入元素,top()/pop() 则会访问/移除下一个(头部)元素。然而这里的“下一个元素“并非第一个放入的元素,而是优先级最高的元素。换句话说,priority_queue 内的元素已经根据其值进行了排序。
相关文章推荐
- 黑暗料理一之修改UITableViewCell左滑删除按钮的样式和自定义
- LeetCode 128. Longest Consecutive Sequence
- ubuntu下打印unit64_t size_t uint32_t 类型
- xoyojank 的 UE4中的DynamicTexture数据更新
- [IOS 开发] 获取设备UUID
- UINavigationBar的视图层级关系
- iOS---[UIDevice identifierForVendor]慎用!
- Qt 示例学习--2. calendar quick controls
- ios GPUImage简单滤镜 -- 录制视频(保存+聚焦)
- android 开发,百度地图 UI 控制器常用方法及作用
- UITabView使用详解
- LeetCode *** 232. Implement Queue using Stacks
- requirejs和r.js的心得
- 重写的easyui-validatebox 验证规则
- UI 常用(UIButton)
- easyui-validatebox form表单提交时校验 ajax提交时校验
- Android中的requestWindowFeature()函数
- 去掉UItableview headerview黏性
- 如何现实隐藏UIBarButtonItem? show/hide a UIBarButtonItem
- Building VirtualBox OSE 5.0.0 on Windows 7 (x86)