Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++优先队列用法

作者:岁月凉茶   发布日期:2025-05-15   浏览:29

#include <iostream>
#include <queue>
#include <functional>

using namespace std;

int main() {
    // 定义一个默认的优先队列(最大堆)
    priority_queue<int> maxHeap;

    // 插入元素
    maxHeap.push(10);
    maxHeap.push(30);
    maxHeap.push20);

    // 输出优先队列的顶部元素(最大值)
    cout << "Top element in max heap: " << maxHeap.top() << endl;

    // 移除顶部元素
    maxHeap.pop();

    // 再次输出顶部元素
    cout << "Top element after pop: " << maxHeap.top() << endl;

    // 定义一个最小堆
    priority_queue<int, vector<int>, greater<int>> minHeap;

    // 插入元素
    minHeap.push(10);
    minHeap.push(30);
    minHeap.push(20);

    // 输出优先队列的顶部元素(最小值)
    cout << "Top element in min heap: " << minHeap.top() << endl;

    // 移除顶部元素
    minHeap.pop();

    // 再次输出顶部元素
    cout << "Top element after pop: " << minHeap.top() << endl;

    return 0;
}

解释说明:

  1. 优先队列:C++ 中的 priority_queue 是一个容器适配器,默认情况下实现为最大堆,即每次取出的是当前队列中的最大值。
  2. 最大堆:使用默认的 priority_queue<int> 可以创建一个最大堆。通过 push 方法插入元素,top 方法获取最大值,pop 方法移除最大值。
  3. 最小堆:通过指定第三个模板参数为 greater<int>,可以创建一个最小堆。这样每次取出的是当前队列中的最小值。
  4. 操作:代码中展示了如何插入元素、获取和移除顶部元素,并且分别演示了最大堆和最小堆的操作。

希望这段代码和解释对你理解 C++ 优先队列有所帮助!

上一篇:c++十进制转二进制

下一篇:c++20 协程

大家都在看

c++闭包

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++ 获取系统时间

c++进制转换函数

c++ tcp

c++ gcd函数

c++ cli

c++ weak_ptr

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站