C++标准库详解:队列与优先级队列操作

需积分: 46 34 下载量 90 浏览量 更新于2024-08-09 收藏 4.25MB PDF 举报
"C++ 入门经典 中文版 - 深入理解队列和优先级队列" 本文档摘自《C++ Primer》第三版的中文译本,由Stanley B. Lippman和Josée Lajoie合著,讲述了C++中的抽象容器类型,特别是关于队列和优先级队列的知识。队列是一种先进先出(FIFO)的数据结构,而优先级队列则是根据元素优先级进行排序的特殊队列。 在C++中,栈的元素通常是按值存储,但对大型或复杂对象,拷贝可能会很昂贵。因此,可以使用指针栈来存储对象,例如`stack< NurbSurface* > surf_Stack;`。栈支持相等性比较和顺序比较,只要底层元素类型支持相应的操作。 6.17章节中介绍了队列和优先级队列。`queue`是标准库提供的FIFO队列,而`priority_queue`则是一个允许用户定义优先级的队列。例如,在机场行李检查中,优先级队列可以优先处理即将离港航班的乘客。在操作系统中,优先级队列用于进程调度。 要使用队列和优先级队列,需要包含`<queue>`头文件。两种队列都支持以下操作: - `empty()`:检查队列是否为空。 - `size()`:返回队列中元素的数量。 - `pop()`:删除队首元素。 - `front()`:返回但不删除队首元素(仅适用于普通队列)。 - `back()`:返回但不删除队尾元素(仅适用于普通队列)。 - `top()`:返回但不删除优先级队列中优先级最高的元素。 对于优先级队列`priority_queue`,新元素会根据其优先级插入到适当位置。`push(item)`方法将元素添加到队列尾部,对于优先级队列,元素会自动按照优先级排序。 C++ Primer第三版提供了深入理解和使用C++标准库中队列和优先级队列的指导,帮助开发者更好地掌握这一重要数据结构。通过本书,读者不仅可以学习到C++的基础知识,还能了解到C++标准的最新进展和最佳实践。