cpp的stl的队列和栈
stl的queue和stack除了第二个参数,可以指定采用哪个集合存储数据,其他的看代码即可了解
//
// main.cpp
// use_stack_queue
//
// Created by bikang on 16/11/1.
// Copyright (c) 2016年 bikang. All rights reserved.
//
#include <iostream>
#include <vector>
#include <queue>
#include <stack>
#include <list>
using namespace std;
void tstack();
void tqueue();
int main(int argc, const char * argv[]) {
//tstack();
tqueue();
return 0;
}
void tstack(){
//stack处理
stack<int> ps;
for(int i=0;i<10;++i)ps.push(i);
cout << ps.size() << endl;
cout << ps.top() << endl;
ps.pop();
cout << ps.top() << endl;
//第二个参数表示用什么来存储数据
stack<int, vector<int>> ps2;
}
void tqueue(){
cout << "test"<<endl;
queue<int,list<int>> q1;
for(int i=0;i<10;++i)q1.push(i);
cout << q1.size() <<endl;
cout << q1.front() << " " << q1.back() << endl;
q1.pop();
cout << q1.front() << " " << q1.back() << endl;
//优先堆
priority_queue<int> p1;
p1.push(31);
p1.push(2);
p1.push(32);
p1.push(18);
cout << p1.size()<< endl;
while (!p1.empty()) {
cout << p1.top()<<",";
p1.pop();
}
cout << endl;
//使用谓词从小到大排序
priority_queue<int,vector<int>,greater<int>> p2;
p2.push(31);
p2.push(2);
p2.push(32);
p2.push(18);
cout << p2.size()<< endl;
while (!p2.empty()) {
cout << p2.top()<<",";
p2.pop();
}
cout << endl;
}