单向队列和栈类似,栈是只在栈顶添加或移除数据,单向队列是从队尾添加数据,从队头移除数据。栈是先进后出(FILO),单向队列是先进先出(FIFO)。在STL中,单向队列也是以别的容器作为底层数据结构的,默认情况下使用deque,可以指定vector等。
queue单向队列常用函数:
1.数据操作
que.front()
返回队列头部数据的引用
que.back()
返回队列尾部数据的引用
que.push(elem)
在队尾添加数据
que.pop()
队列头部数据出队
2.其他操作
que.empty()
判断队列是否为空,若空返回true,否则返回false。
que.size()
返回队列中数据的个数
queue单向队列例子:
#include <iostream>
#include <queue>
#include <vector>
using std::queue;
using std::vector;
int main()
{
queue<int> que;//默认使用deque作为底层容器
queue<int, vector<int> >quev;//指定vector为底层容器
for (int i = 0; i < 10; ++i)
{
que.push(i*i);
quev.push(i);
}
std::cout << "\n\n队头数据:"<<que.front();
std::cout << "\n\n队尾数据:" << que.back();
std::cout << "\n\n队列大小:" << que.size();
std::cout << "\n\n队列que的数据:\n";
while (!que.empty())
{
std::cout << que.front() << " ";
que.pop();
}
system("pause");
return 0;
}