c++ STL--stack/queue
来源:互联网 发布:网络经费分析 编辑:程序博客网 时间:2024/06/17 04:43
1、stack
stack 模板类的定义在头文件中。
stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要
的,在不指定容器类型时,默认的容器类型为deque。
定义stack 对象的示例代码如下:
stack s1;
stack s2;
stack 的基本操作有:
入栈,如例:s.push(x);
出栈,如例:s.pop();注意,出栈操作只是删除栈顶元素,并不返回该元素。
访问栈顶,如例:s.top()
判断栈空,如例:s.empty(),当栈空时,返回true。
访问栈中的元素个数,如例:s.size()。
2、queue
queue 模板类的定义在头文件中。
与stack 模板类很相似,queue 模板类也需要两个模板参数,一个是元素类型,一个容器类
型,元素类型是必要的,容器类型是可选的,默认为deque 类型。
定义queue 对象的示例代码如下:
queue q1;
queue q2;
queue 的基本操作有:
入队,如例:q.push(x); 将x 接到队列的末端。
出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
访问队首元素,如例:q.front(),即最早被压入队列的元素。
访问队尾元素,如例:q.back(),即最后被压入队列的元素。
判断队列空,如例:q.empty(),当队列空时,返回true。
访问队列中的元素个数,如例:q.size()
#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;}
3、priority_queue
在头文件中,还定义了一个非常有用的模版类priority_queue(优先队列),优先队列与队列的差别在于优先队列不是按照入队的顺序出队,而是按照队列中元素的优先权顺序出队(默认为大者优先,也可以通过指定算子来指定自己的优先顺序)。
priority_queue模版类有三个模版参数,元素类型,容器类型,比较算子。其中后两个都可以省略,默认容器为vector,默认算子为less,即小的往前排,大的往后排(出队时序列尾的元素出队)。
定义priority_queue对象的示例代码如下:
priority_queueq1;
priority_queue
#include<iostream> #include<queue> #include<stdlib.h> using namespace std; class T { public: int x,y,z; T(int a,int b,int c):x(a),y(b),z(c) { } }; bool operator<(const T&t1,const T&t2) { return t1.z<t2.z; } int main(void) { priority_queue<T>q; q.push(T(4,4,3)); q.push(T(2,2,5)); q.push(T(1,5,4)); q.push(T(3,3,6)); while(!q.empty()) { T t=q.top(); q.pop(); cout<<t.x<<" "<<t.y<<" "<<t.z<<endl; } system("Pause"); return 1; }
- STL----stack与queue
- STL 之 stack - queue
- STL之stack、queue
- STL--stack、queue、priority_queue
- C++ STL stack/queue
- STL之Stack,Queue
- c++ STL--stack/queue
- STL - stack&queue&priority_queue
- stl-stack/queue/list
- c++STL容器(map,set,vector,stack,queue)
- C++(24):STL初步之stack、queue
- STL--stack/queue的使用方法
- STL--stack/queue的使用方法
- STL--stack/queue的使用方法
- STL--stack/queue的使用方法
- STL--stack/queue的使用方法
- STL--stack/queue的使用方法
- STL--stack/queue的使用方法
- 一款产品的成败与产品经理有多大的关系?
- 编译安装PostgreSQL-9.5.3数据库
- 这算是一个小小的开始吧。。
- UVA - 10025 The ? 1 ? 2 ? ... ? n = k problem
- 初识java中面向过程语法及数组特点-----自学JAVA(第四节)
- c++ STL--stack/queue
- HTML里form, table表示表格的时候有什么区别?
- leetcode335. Self Crossing
- jquery 定时器 每隔15秒调用函数
- UVA - 846 Steps
- UVA - 10499 The Land of Justice
- 控制反转(IoC)促进了低耦合,耦合是什么意思?
- UVA - 10790 How Many Points of Intersection?
- 圆周舞蹈 (Standard IO)