首页 > 其他分享 >堆

时间:2024-11-21 22:22:32浏览次数:1  
标签: queue STL priority pq1 pq2 push

前言

堆,一种树形结构,保持最优。
两个重要操作
上浮:加入了一个元素从下向上恢复堆得性质
下沉:该变了一个元素的值,恢复堆得性质

STL priority_queue()

跟其他的STL 很像

#include <bits/stdc++.h>
using namespace std;
int main()
{
    priority_queue<int, vector<int>> pq1;               // 默认大根堆
    priority_queue<int, vector<int>, greater<int>> pq2; // 小根堆
    pq1.push(1);
    pq1.push(2);
    pq1.push(3);
    pq2.push(1);
    pq2.push(2);
    pq2.push(3);
    cout << pq1.size() << endl
         << pq1.top() << endl
         << pq2.top() << endl;
    pq2.pop(), pq1.pop();
    cout << pq1.size() << endl
         << pq1.top() << endl
         << pq2.top() << endl;
    return 0;
}
/*输出:
3
3
1
2
2
2*/

题目

P3378
P1090
P1168
P2085
P2827
P3045

标签:,queue,STL,priority,pq1,pq2,push
From: https://www.cnblogs.com/-include-lmt/p/18561661

相关文章