STL的priorit_queue类

STL提供了priority_queue类,它是一个适配器容器。默认的基本容器类型是vector。priority_queue可以插入元素,但不能遍历元素。只能访问最上面的元素。元素在队列中出入时。会把优先级最高的元素放在队首,优先级最高的元素通过默认运算符<或比较函数对象来确定。priority_queue容器使用随机访问迭代器,采用支持front、push_back和pop_back 的容器,例如deque和vector。priority_queue最好实现为堆。下面是STL中priority_queue容器的一个简化规范:


STL还在<algorithm>中提供了堆算法。容器可以使用make_heap函数转换为堆,在使用sort_heap转换回容器。push_heap和pop_heap函数可以添加和删除堆的第一个元素,钙元素的优先级最高。堆算法要求使用随机访问迭代器。函数规范如下所示:


下面的程序演示了优先队列的用法和一个使用堆的操作的vector:


你可能感兴趣的:(Queue)