C++面试题整理与归纳
发布时间
阅读量:
阅读量
C++中堆(优先队列)的使用
- priority_queue 默认采用最大堆结构,例如:
std::priority_queue<int> q;
上述语句用于定义一个最大堆。
- 最大堆与最小堆的创建方式:
priority_queue<>在默认情况下构成的是最大堆,这源于优先队列队首指向末尾,队尾指向起始位置 的特性。
换句话说,当使用一个数组时,若采用std::less进行排序(即通过小于号连接元素),优先队列的顶部元素始终位于数组的末尾位置。
// 最小堆
std::priority_queue<int, std::vector<int>, std::greater<int> > q2;
// 最大堆
std::priority_queue<int, std::vector<int>, std::less<int> > q2;
- 设计特定的比较函数,以构建多样化的最大堆与最小堆结构
// Using lambda to compare elements.
auto cmp
全部评论 (0)
还没有任何评论哟~
