c++ priority_queue的简单使用

本文展示了C++中使用`priority_queue`处理浮点数的例子,对比了`less`和`greater`两种比较器的效果。`less`实现升序堆,`greater`实现降序堆。通过`push`、`pop`和`top`操作,展示了队列元素的插入、删除和获取最大/最小值的过程。
摘要由CSDN通过智能技术生成

1、priority_queue<float, vector< float>, less< float>> 注:默认是less

#include <iostream>
#include <queue>
#include <vector>

using namespace std;


void test_1(void)
{
    cout << endl << "test_1: " << endl;

    priority_queue<float, vector<float>, less<float>> q;

    q.push(66.6);
    q.push(22.2);
    q.push(44.4);

    cout << "top(): " << q.top() << endl;
    q.pop();
    cout << "top(): " << q.top() << endl;
    q.pop();

    q.push(11.1);
    q.push(55.5);
    q.push(33.3);

    q.pop();

    cout << "size: " << q.size() << endl;
    cout << "all: ";
    while (!q.empty()) {
        cout << q.top() << " ";
        q.pop();
    }
    cout << endl;
}

int main()
{
    test_1();
    cout << "Hello World!" << endl;
    return 0;
}

结果:

test_1:
top(): 66.6
top(): 44.4
size: 3
all: 33.3 22.2 11.1
Hello World!

2、 priority_queue<float, vector< float>, greater< float>>

#include <iostream>
#include <queue>
#include <vector>

using namespace std;


void test_1(void)
{
    cout << endl << "test_1: " << endl;

    priority_queue<float, vector<float>, greater<float>> q;

    q.push(66.6);
    q.push(22.2);
    q.push(44.4);

    cout << "top(): " << q.top() << endl;
    q.pop();
    cout << "top(): " << q.top() << endl;
    q.pop();

    q.push(11.1);
    q.push(55.5);
    q.push(33.3);

    q.pop();

    cout << "size: " << q.size() << endl;
    cout << "all: ";
    while (!q.empty()) {
        cout << q.top() << " ";
        q.pop();
    }
    cout << endl;
}

int main()
{
    test_1();
    cout << "Hello World!" << endl;
    return 0;
}

结果:

test_1:
top(): 22.2
top(): 44.4
size: 3
all: 33.3 55.5 66.6
Hello World!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值