C++ - STL - queue 整理笔记
一 基本概念:
queue是一种先进先出的数据结构,有两个出口,一端新增元素,另一端移除元素;
队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为。
c++队列模板类的定义在<queue>头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque类型。
二 头文件
#include<queue>
三 定义一个queue类队列
queue<类型> 名字;
四 相关函数
(1)push() 在末尾加入一个元素
#include <iostream> #include <queue> using namespace std; int main() { queue<int> q; q.push(1); q.push(2); cout<<q.front()<<endl; return 0; }
输出:1
(2)front()返回队列第一个元素的引用。注意:只是返回第一个元素的值,并没有删除!
#include <iostream> #include <queue> using namespace std; int main() { queue<int> q; q.push(1); q.push(2); cout<<q.front()<<endl; return 0; }
输出:1
(3)pop()函数删除队列的一个元素
#include <iostream> #include <queue> using namespace std; int main() { queue<int> q; q.push(1); q.push(2); q.pop(); cout<<q.front()<<endl; return 0; }
输出:2
(4)empty()函数,如果队列为空,返回true(1),如果队列不为空,否则返回flase(0)。
#include <iostream> #include <queue> using namespace std; int main() { queue<int> q; q.push(18); cout<<"队列第一个(唯一)元素:"<<q.front()<<endl; cout<<"此时判断返回值"<<q.empty()<<endl; q.pop(); cout<<"剔除元素后,队列第一个值(没有):"<<q.front()<<endl; cout<<"此时判断返回值"<<q.empty()<<endl; return 0; }
输出:
队列第一个(唯一)元素:18
此时判断返回值0
剔除元素后,队列第一个值(没有):0
此时判断返回值1
(5)back()返回一个引用,指向队列的最后一个元素。注意:只是返回最后一个元素的值,并没有删除!
#include <iostream> #include <queue> using namespace std; int main() { queue<int> q; q.push(1); q.push(2); cout<<q.back()<<endl; return 0; }
输出:2
(6)size() 返回队列中元素的个数
#include <iostream> #include <queue> using namespace std; int main() { queue<int> q; q.push(1); cout<<q.size()<<endl; return 0; }
输出:1