STL之queue的常见用法详解

摘自胡凡的《算法笔记》,仅作记录用!
前言:要使用queue,应先添加头文件#include ,并在头文件下面加上using namespace std;

一、queue的定义

其定义的写法和其他STL容器相同,typename可以是任意基本数据类型或容器queue name;

二、queue容器内元素的访问

由于队列本身就是一种先进先出的限制性数据结构,因此在STL中只能通过front()来访问队首元素,或是通过back()来访问队尾元素

三、queue常用函数

  1. push()
    push(x)将x进行入队,时间复杂度为 O ( 1 ) O(1) O(1)
  2. front()、back()
    front()和back()可以分别获得队首元素和队尾元素,时间复杂度为 O ( 1 ) O(1) O(1)
  3. pop()
    pop()令队首元素出队,时间复杂度为 O ( 1 ) O(1) O(1)
  4. empty()
    检测queue是否为空,返回true则空,返回false则非空,时间复杂度为 O ( 1 ) O(1) O(1)
  5. size()
    返回queue内元素的个数,时间复杂度为 O ( 1 ) O(1) O(1)

四、queue的常见用途

  • 当需要实现广度优先搜索时,可以不用自己手动实现一个队列,而是用queue作为代替,以提高程序的准确性。
  • 另外有一点值得注意的是,使用front()和pop()函数前,必须用empty()判断队列是否为空,否则可能因为对空而出现错误。
  • 延伸:STL容器中还有两种容器跟队列有关,分别是双端队列(deque)和优先队列(priority_queue),前者是首位皆可插入和删除的队列,后者是使用堆实现的默认将当前队列最大元素至于队首的容器。

你可能感兴趣的:(C++学习)