C++ STL (5) queue队列和priority_queue优先队列的简单用法
队列的简单介绍
- queue队列的简单介绍
队列(Queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表(先进先出)。允许插入的端是队尾,允许删除的端是队头。
queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。
队列的容量可以有限,也可以是无限的。
- 注意点
新元素进行入队列容易造成假溢出。
• 假溢出:顺序队列因多次入队列和出队列操作后出现的尚有存储空间但不能进行入队列操作的溢出。
• 真溢出:顺序队列的最大存储空间已经存满二又要求进行入队列操作所引起的溢出。 - 储存方式
队列是一个先进先出的线性表,相应的也有顺序存储和链式存储两种方式。
顺序存储:使用数组实现,比如有一个n个元素的队列,数组下标0的一端是队头,入队操作就是通过数组下标一个个顺序追加,不需要移动元素,但是如果删除队头元素,后面的元素就要往前移动,对应的时间复杂度就是O(n),性能自然不高。
循环队列:有两个指针