C++队列queue模板类的定义在<queue>头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。
C++队列Queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。
C++队列Queue类成员函数如下:
back() 返回最后一个元素
empty() 如果队列空则返回真
front() 返回第一个元素
pop() 删除第一个元素
push() 在末尾加入一个元素
size() 返回队列中元素的个数
定义queue 对象的示例代码如下:
queue< int > q1; queue< double > q2; |
queue 的基本操作举例如下:
queue入队,如例:q.push(x); 将x 接到队列的末端。
queue出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
访问queue队首元素,如例:q.front(),即最早被压入队列的元素。
访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。
判断queue队列空,如例:q.empty(),当队列空时,返回true。
访问队列中的元素个数,如例:q.size()
C++ stl队列queue示例代码1:
#include <cstdlib> #include <iostream> #include <queue> using namespace std; int main() { int e,n,m; queue< int > q1; for ( int i=0;i<10;i++) q1.push(i); if (!q1.empty()) cout<< "dui lie bu kong\n" ; n=q1.size(); cout<<n<<endl; m=q1.back(); cout<<m<<endl; for ( int j=0;j<n;j++) { e=q1.front(); cout<<e<< " " ; q1.pop(); } cout<<endl; if (q1.empty()) cout<< "dui lie bu kong\n" ; system ( "PAUSE" ); return 0; } |
C++ stl队列queue示例代码2:
#include <iostream> #include <queue> #include <assert.h> /* 调用的时候要有头文件: #include<stdlib.h> 或 #include<cstdlib> + #include<queue> #include<queue> 详细用法: 定义一个queue的变量 queue<Type> M 查看是否为空范例 M.empty() 是的话返回1,不是返回0; 从已有元素后面增加元素 M.push() 输出现有元素的个数 M.size() 显示第一个元素 M.front() 显示最后一个元素 M.back() 清除第一个元素 M.pop() */ using namespace std; int _tmain( int argc, _TCHAR* argv[]) { queue < int > myQ; cout<< "现在 queue 是否 empty? " << myQ.empty() << endl; for ( int i =0; i<10 ; i++) { myQ.push(i); } for ( int i=0; i<myQ.size(); i++) { printf ( "myQ.size():%d\n" ,myQ.size()); cout << myQ.front()<<endl; myQ.pop(); } system ( "PAUSE" ); return 0; } |
输出结果:
现在 queue 是否 empty? 1
myQ.size():10
0
myQ.size():9
1
myQ.size():8
2
myQ.size():7
3
myQ.size():6
4
请按任意键继续. . .
文章摘自 http://www.169it.com/article/2718050585107790752.html