浅谈C++ STL queue 容器

2019/11/08 19:33
阅读数 104

浅谈C++ STL queue 容器

本篇随笔简单介绍一下$C++STL$中$queue$容器的使用方法和常见的使用技巧。$queue$容器是$C++STL$的一种比较基本的容器。我们在学习这个容器的时候,不仅要学到这个容器具体的使用方法,更要从中体会$C++STL$的概念。

queue容器的概念

$queue$在英文中是队列的意思。队列是一种基本的数据结构。而$C++STL$中的队列就是把这种数据结构模板化了。我们可以在脑中想象买票时人们站的排队队列。我们发现,在一个队列中,只可以从队首离开,从队尾进来(没有插队,想啥呢)。即一个先进先出的数据结构。

上图理解:

queue容器的声明

$queue$容器存放在模板库:#include<queue>里,使用前需要先开这个库。

$queue$容器的声明遵循$C++STL$的一般声明原则:

容器类型<变量类型> 名称

例:


#include<queue>

queue<int> q;

queue<char> q;

queue<pair<int,int> > q;

queue<node> q;

struct node{...};

queue容器的使用方法

$queue$容器的使用方法大致如下表所示:

用法 作用
q.front(),q.back() 返回queue的首、尾元素
q.push() 从queue末尾加入一个元素
q.size() 返回queue当前的长度(大小)
q.pop() 从queue末尾删除一个元素
q.empty() 返回queue是否为空,1为空、0不为空

注意,虽然$vector$和$queue$是两种最基本的$STL$容器,但请记住它们两个不是完全一样的。就从使用方法来讲:

$queue$不支持随机访问,即不能像数组一样地任意取值。并且,$queue$并不支持全部的$vector$的内置函数。比如$queue$不可以用$clear()$函数清空,清空$queue$必须一个一个弹出。同样,$queue$也并不支持遍历,无论是数组型遍历还是迭代器型遍历统统不支持,所以没有$begin(),end();$函数,使用的时候一定要清楚异同!

展开阅读全文
c++
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部