cen's blog cen's blog
首页
  • 编程文章

    • markdown使用
  • 学习笔记

    • 《JavaScript教程》
    • C++学习
    • C++数据结构
    • MySQL
    • Linux
  • 高中时代
  • 工作日常
  • CLion
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)

cen

十年饮冰,难凉热血
首页
  • 编程文章

    • markdown使用
  • 学习笔记

    • 《JavaScript教程》
    • C++学习
    • C++数据结构
    • MySQL
    • Linux
  • 高中时代
  • 工作日常
  • CLion
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)
  • 类和对象
  • 内存管理
  • 泛型模板
  • string
  • vector
  • list
  • stack和queue
  • priority_queue
    • priority_queue的介绍
    • priority_queue的定义
    • priority_queue的使用
    • priority_queue的模拟实现
  • 继承
  • 多态
  • set和map
  • bitset
  • C++11
  • 异常
  • 智能指针
  • 特殊类设计
  • 线程库
  • C++学习笔记
cen
2024-10-26
目录

priority_queue

# priority_queue的介绍

优先级队列默认使用vector作为其底层存储数据的容器,在vector上又使用了堆算法将vector中的元素构造成堆的结构,因此priority_queue就是堆,所有需要用到堆的位置,都可以考虑使用priority_queue

默认情况下,priority_queue是大堆

# priority_queue的定义

  1. 方式一:使用vector作为底层容器,内部构造大堆结构
priority_queue<int, vector<int>, less<int>> q1;
1
  1. 方式二:使用vector作为底层容器,内部构造小堆结构
priority_queue<int, vector<int>, greater<int>> q2;
1
  1. 方式三:默认使用vector作为底层容器,默认内部构造大堆结构
priority_queue<int> q;
1

# priority_queue的使用

成员函数 函数功能
push 插入元素到队尾并排序
pop 弹出队头元素
top 访问队头元素
size 获取队列的有效元素个数
empty 判断队列是否为空
swap 交换两个队列的内容

示例:

int main() {
    priority_queue<int,vector<int>> p;
    p.push(100);
    p.push(10);
    p.push(22);
    p.push(34);
    p.push(1);
    // 100 34 22 10 1
    while(!p.empty()) {
        cout << p.top() << " ";
        p.pop();
    }
    return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# priority_queue的模拟实现

上次更新: 2024/10/26, 21:27:03
stack和queue
继承

← stack和queue 继承→

最近更新
01
线程安全
05-21
02
cmake教程
05-08
03
项目
05-07
更多文章>
Theme by Vdoing | Copyright © 2024-2025 京ICP备2020044002号-3 京公网安备11010502056119号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式