priority_queueメモ

広告

HackerRankやっていてpriority_queueを使うことが何度かあったのですが、その場で検索しても自分にとって有用なサンプルが出てこなかったので、自分用メモとして残しておきます。intのpriority_queueってあまり使わなくないですか?

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

using namespace std;

struct s
{
    int priority;
};


int main() {

    priority_queue<s, vector<s>, function<bool(const s, const s)>> pq(
            [](const s s1, const s s2) { return s1.priority > s2.priority; });
}

最小のコードはこんな感じになります。

priority_queueはインチキの抽選みたいなもので、箱の中に玉を入れていきますが、取り出すときは一番大きい番号のものが出てくるイメージです。整数を入れる場合は面倒はないのですが、普通はスケジュールとかを入れて、時刻の早い順に取り出すような用途にしますので、構造体やクラスを入れると思います。ちょっと検索したところだと最近の書き方が見つからなかったので自分用メモとしてエントリを残します。