Boost.Heapの優先順位付きキューの特徴として、「イテレータを持っている」というのがあります。 さらに、iteratorに加えてordered_iteratorというを持っている優先順位付きキューのバリエーションがあります。 これらの違いを確認しようと思います。 まず、イテレータを使わない場合の操作。pushしてpopしていきます。 この操作では、優先順に処理されます。 #include <iostream> #include <boost/heap/fibonacci_heap.hpp> int main () { boost::heap::fibonacci_heap<int> que; que.push(3); que.push(1); que.push(4); while (!que.empty()) { std::cout << que.top() << std::endl