容器适配器
| 类型 | 备注 |
|---|
| stack | 后进先出 |
| queue | 先进先出 |
| priority_queue | 值大先出 |
stack
#include<iostream>
#include<stack>
using namespace std;
int main() {
stack<int> mystack1({ 1,2,3,4,5 });
stack<int> mystack2;
for(int i=5;i<10;i++)
mystack2.push(i);
while (!mystack1.empty()) {
cout << mystack1.top() << " ";
mystack1.pop();
}cout << endl;
int size = mystack2.size();
for (int i = 0; i < size; i++) {
cout << mystack2.top() << " ";
mystack2.pop();
}
mystack1.swap(mystack2);
return 0;
}
queue
#include<iostream>
#include<queue>
using namespace std;
int main() {
queue<int> queue1({ 1,2,3,4,5 });
queue<int> queue2;
for (int i = 5; i < 10; i++) {
queue2.push(i);
cout << queue2.back() << " ";
}cout << endl;
while (!queue1.empty()) {
cout << queue1.front() << " ";
queue1.pop();
}cout << endl;
int size = queue2.size();
for (int i = 0; i < size; i++) {
cout << queue2.front() << " ";
queue2.pop();
}
queue1.swap(queue2);
return 0;
}
priority__queue
#include<iostream>
#include<queue>
using namespace std;
struct cmp {
bool operate(const pair<int, int>& a, const pair<int, int>& b) {
return a.first > b.first;
}
};
int main() {
priority_queue<int> pri_queue;
priority_queue<int, vector<int>, less<int>> pri_queue1;
priority_queue<int, vector<int>, greater<int>> pri_queue2;
priority_queue<pair<int, int>, vector<pair<int, int>>, cmp> pri_queue3;
int arr[] = { 1,2,3,4,5 };
priority_queue<int> pqueue1(arr,arr+5);
priority_queue<int> pqueue2;
for (int i = 5; i < 10; i++)
pqueue2.push(i);
while (!pri_queue.empty()) {
cout<<pri_queue.top();
pri_queue.pop();
}
for (int i = 0; i < pri_queue.size(); i++) {
cout << pri_queue.top();
pri_queue.pop();
}
pqueue1.swap(pqueue2);
return 0;
}