Boost.Heap 也可以称为 Boost.PriorityQueue,因为该库提供了几个优先级队列。但是,Boost.Heap 中的优先级队列与 std::priority_queue 不同,它支持更多功能。
示例 17.1。使用 boost::heap::priority_queue
- #include <boost/heap/priority_queue.hpp>
- #include <iostream>
-
- using namespace boost::heap;
-
- int main()
- {
- priority_queue<int> pq;
- pq.push(2);
- pq.push(3);
- pq.push(1);
-
- for (int i : pq)
- std::cout << i << '\n';
-
- priority_queue<int> pq2;
- pq2.push(4);
- std::cout << std::boolalpha << (pq > pq2) << '\n';
- }
示例 17.1 使用了 boost::heap::priority_queue 类,该类在 boost/heap/priority_queue.hpp 中定义。一般来说,这个类的行为类似于 std::priority_queue,除了它允许你迭代元素。迭代中返回的元素顺序是随机的。
boost::heap::priority_que