priority_queue の比較順序 & 比較関数の渡し方
例:文字で表された数値について、小さい順で取り出す
code:c++
auto compare = [](string lhs, string rhs) -> bool {
if (lhs.size() != rhs.size()) return lhs.size() > rhs.size();
return lhs >= rhs;
};
priority_queue<string, vector<string>, decltype(compare)> q(compare);
ソートした配列の末尾から pop されていくイメージ
例えば比較関数を渡さない場合は大きい数から pop されるが、これは昇順ソートした後で末尾から pop していると捉えられる
比較関数は「lhs と rhs がこの順に並ぶかどうか」を bool で返していると捉える