1. 队列
队列是在一端允许插入,一端允许删除操作的线性表,是一种先进先出(FIFO)的线性表。在front,即队头,允许删除操作,进行出列操作,在rear,即队尾,允许插入操作,进行入列操作。
2. 队列中常用的函数
3. 如何建立队列
在VS编译器中添加queue类,建立队列q
#include<queue>
建立队列:
queue<Type, Container> (<数据类型,容器类型>)
建立一个int型队列q.
4. 队列queue常用函数说明
queue中常用队列函数
queue常用函数名称 | 函数说明 |
---|---|
push | 将数据压入至队列中-入列 |
pop | 将数据压出队列-出列 |
front | 获取队头数据 |
back | 获取队尾数据 |
empty | 判断队列是否为空,为空则返回true |
size | 返回队列中元素的个数,返回类型为unsigned int |
emplace | 用传给 emplace() 的参数调用 T 的构造函数,在 queue 的尾部生成对象。 |
4.1 push
在建立的队列q中压入5,10,15,三个整型数据,此时队列按照先进先出的原则,队首的数据应为5。
#include<queue>
#include<iostream>
using namespace std;
int main()
{
queue<int>q;
q.push(1);
q.push(2);
q.push(3);
cout <<"输出结果为:"<< q.front() << endl;
}
输出结果为:1
4.2 pop
在建立的队列q中压入5,10,15,三个整型数据,此时队列按照先进先出的原则,pop出队首的数据后,此时队列队首的数据应为10。
#include<queue>
#include<iostream>
using namespace std;
int main()
{
queue<int>q;
q.push(5);
q.push(10);
q.push(15);
q.pop();
cout <<"输出数据为:" << q.front() << endl;
}
输出结果为:10
4. 3 front
参见4.1
4.4 back
队尾的数据应为15。
#include<queue>
#include<iostream>
using namespace std;
int main()
{
queue<int>q;
q.push(5);
q.push(10);
q.push(15);
cout <<"输出数据为:" << q.back() << endl;
}
输出结果为:15
4.5 empty
#include<queue>
#include<iostream>
using namespace std;
int main()
{
queue<int>q;
cout <<"输出数据为:" << q.empty() << endl;
q.push(5);
q.push(10);
q.push(15);
cout <<"输出数据为:" << q.empty() << endl;
}
在未压入数据时,此时列表q为空,true,输出为1,当压入数据后,列表不为空,输出为0.
4.6 size
#include<queue>
#include<iostream>
using namespace std;
int main()
{
queue<int>q;
cout <<"输出数据为:" << q.size() << endl;
q.push(5);
q.push(10);
q.push(15);
cout <<"输出数据为:" << q.size() << endl;
}
队列为空时,q的size为0,当压入三个数据之后,队列的size为3.