C++STL之queue用法
queue表示的是队列的数据结构,是常用的数据结构之一。队列主要特点就是“先进先出”。
定义queue模板需要定义两个模版参数,一个是元素类型,一个是容器类型,元素类型是必要的,容器类型可选。
下面就简单的介绍一下队列的在编程中常用的一些简单的操作。
定义queue对象的示例代码如下:
queue <int>q1;
queue <double>q2;
queue的基本操作有:
1.入队:如q.push(x):将x元素接到队列的末端;
2.出队:如q.pop() 弹出队列的第一个元素,并不会返回元素的值;
3,访问队首元素:如q.front()
4,访问队尾元素,如q.back();
5,访问队中的元素个数,如q.size();
上个代码解释一下具体用法。
#include<iostream>
#include<queue>
#include<string>
using namespace std;
int main()
{
queue<string>queue1;
queue1.push("apple");
queue1.push("orange");
queue1.push("banana");
string str;
str = queue1.front();
cout << str<<"\t" << queue1.size() << endl;
queue1.pop();
str = queue1.front();
cout << str << "\t" << queue1.size() << endl;
queue1.pop();
str = queue1.front();
cout << str << "\t" << queue1.size() << endl;
}
运行结果如下:
以下是一个小程序,实现的功能是每推出一个数,就压进一个数。
#include<iostream>
#include<queue>
#include<string>
#include<vector>
using namespace std;
int main()
{
queue<int>q;
int i = 0;
for (; i < 50; i++)
q.push(i);
while (!(q.front() == 20))
{
cout << q.front() << " " << q.back() << endl;
q.pop();
q.push(i++);
}
}
运行结果如下: