C++ STLのsetやmapの場合は要素を小さい順にソートするけど,priority_queueは要素を大きい順に並べる. priority_queueの定義はこんな感じ. template <class T, class Container = vector<T>, class Compare = less<typename Container::value_type> > class priority_queue; ここで紛らわしいのは,Compareにはデフォルトでlessが割り当てられるけど,priority_queueはこれを使って要素を大きい順に並べること.指定するCompareと実際のソートの仕方が逆で直感的じゃない.要注意. 要素を小さい順に取り出したい場合は以下のようにgreaterを指定しなければならない. priority_queue<int, vector<int