侧边栏壁纸
博主头像
燕雀の家 博主等级

行动起来,活在当下

  • 累计撰写 13 篇文章
  • 累计创建 5 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

priorityqueue

Administrator
2025-01-12 / 0 评论 / 0 点赞 / 6 阅读 / 0 字
//
// Created by yjs on 2022/2/19.
//
#include <iostream>
#include <queue>


using namespace std;

void pprint(const string &string1, auto priorityQueue) {
    cout << string1 << " : ";
    while (!priorityQueue.empty()) {
        cout << priorityQueue.top() << " ";
        priorityQueue.pop();

    }
    cout << endl;

}

bool cmp(const int &n1, const int &n2) {
    return n1 > n2;
}


struct cmp2 {

    bool operator()(const int &n1, const int &n2) {
        return n1 < n2;
    }
};

int main() {


    // 大根堆
    vector<int> ans{1, 25, 36, 89, 123};
    priority_queue<int, vector<int>, less<int>> priorityQueue1(ans.begin(), ans.end());

    // cout
    pprint("priorityQueue1", priorityQueue1);

    // 小根堆
    vector<int> ans2{1, 25, 36, 89, 123};
    priority_queue<int, vector<int>, greater<int>> priorityQueue2(ans.begin(), ans.end());
    pprint("priorityQueue2", priorityQueue2);

    vector<int> ans3{1, 25, 36, 89, 123};
    priority_queue<int, vector<int>, greater<int>> priorityQueue3(greater<int>(), ans3);
    pprint("priorityQueue3", priorityQueue3);


    // 自定义函数
    vector<int> ans4{1, 25, 36, 89, 123};

    priority_queue<int, vector<int>, decltype(&cmp)> priorityQueue4(cmp, ans);
    pprint("priorityQueue4", priorityQueue4);


    vector<int> ans5{1, 25, 36, 89, 123};

    priority_queue<int, vector<int>, cmp2> priorityQueue5(ans5.begin(), ans5.end());
    priority_queue<int, vector<int>, cmp2> priorityQueue6(cmp2(), ans5);
    pprint("priorityQueue5", priorityQueue5);
    pprint("priorityQueue6", priorityQueue6);


    return 0;
}
0

评论区