因为每次写队列函数太麻烦了,有没有什么简便的方法呢?当然有了,那就是STL库。
下面我就来讲讲STL中的队列吧。
队列与栈不同,它是一个先进先出的数据存储结构
队列 q="(队首)1 2 3 4 5 6 7 8 9 10(队尾)";
出队(q.pop())q="(队首)2 3 4 5 6 7 8 9 10(队尾)";
出队(q.pop())q="(队首)3 4 5 6 7 8 9 10(队尾)";
进队(q.push(1))p="(队首)3 4 5 6 7 8 9 10 1(队尾)";
进队(q.push(2))p="(队首)3 4 5 6 7 8 9 10 1 2(队尾)";
长度(q.size())q.size()=10;
获取队首元素(q.front())=3;
获取队尾元素(q.back())=2;
//1.首先是头文件
#include<queue>
//2.创建一个空队列
queue<int> q;
//3.判断是否为空,为空返回true,否则返回false
q.empty();
//4.返回队列中元素的个数,即队列的长度
q.size();
//5.在队尾插入元素x
q.push(x);
//6.删除队首元素
q.pop();
//7.获取队首元素的值
q.front();
//8.获取队尾元素的值
q.back();
很
简
单
的
队列 q="(队首)1 2 3 4 5 6 7 8 9 10(队尾)";
出队(q.pop())q="(队首)2 3 4 5 6 7 8 9 10(队尾)";
出队(q.pop())q="(队首)3 4 5 6 7 8 9 10(队尾)";
进队(q.push(1))p="(队首)3 4 5 6 7 8 9 10 1(队尾)";
进队(q.push(2))p="(队首)3 4 5 6 7 8 9 10 1 2(队尾)";
长度(q.size())q.size()=10;
获取队首元素(q.front())=3;
获取队尾元素(q.back())=2;
代码执行:
#include<iostream>
#include<queue>
using namespace std;
int main(){
queue<int> q;
for(int i=1;i<=10;i++){
q.push(i);
}
q.pop();
q.pop();
q.push(1);
q.push(2);
cout<<q.size()<<endl;
cout<<q.front()<<endl;
cout<<q.back()<<endl;
return 0;
}