C++ STL之queue详解
Posted 行码棋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ STL之queue详解相关的知识,希望对你有一定的参考价值。
返回主目录
3.queue(队列)
3.1 介绍
队列是一种先进先出的数据结构。
比喻性的描述可为 一条两端通透的隧道,火车车厢先进就先出,后进就后出。
//头文件
#include<queue>
//定义初始化
queue<int>q;
3.2 方法函数
代码 | 含义 |
---|---|
front() | 返回队首元素 O(1) |
back() | 返回队尾元素 O(1) |
push() | 尾部添加一个元素副本 进队O(1) |
pop() | 删除第一个元素 出队 O(1) |
size() | 返回队列中元素个数,返回值类型unsigned int O(1) |
empty() | 判断是否为空,队列为空,返回true O(1) |
3.3 队列模拟
使用q[]
数组模拟队列
hh
表示队首元素的下标,初始值为0
tt
表示队尾元素的下标,初始值为-1
,表示刚开始队列为空
队列模拟下标很容易弄错,每个人都有自己的队头队尾的下标表示方法,我习惯让队首队尾直接当做元素的下标来访问
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+5;
int q[N];
int main()
int hh = 0,tt = -1;
// 入队
q[++tt] = 1;
q[++tt] = 2;
// 出队
while(hh<=tt)
int t = q[hh++];
printf("%d ",t);
return 0;
其中关于队列,后续章节有优先队列和双端队列的介绍
以上是关于C++ STL之queue详解的主要内容,如果未能解决你的问题,请参考以下文章
C++ stl queue(单端队列)和stl deque(双端队列)的区别(与循环队列的区别)