分别对stack<int>、 queen<int>、 priority_queen<int>的实例执行下面的操作:调用push函数,分别将5、1、4、6压入,调用两次pop函数;调用push函数分别将2,3压入;调用两次pop函数。请问对于三类容器适配器,每次调用pop函数弹出的元素分别是什么?请编写程序验证自己的推断
时间: 2024-03-31 18:36:19 浏览: 38
对于stack<int>,每次调用pop函数弹出的元素分别是6和4;
对于queue<int>,每次调用pop函数弹出的元素分别是5和1;
对于priority_queue<int>,每次调用pop函数弹出的元素分别是6和5。
以下是验证程序:
```c++
#include <iostream>
#include <stack>
#include <queue>
using namespace std;
int main() {
// stack
stack<int> s;
s.push(5);
s.push(1);
s.push(4);
s.push(6);
s.pop();
s.pop();
s.push(2);
s.push(3);
s.pop();
s.pop();
while (!s.empty()) {
cout << s.top() << " ";
s.pop();
}
cout << endl;
// queue
queue<int> q;
q.push(5);
q.push(1);
q.push(4);
q.push(6);
q.pop();
q.pop();
q.push(2);
q.push(3);
q.pop();
q.pop();
while (!q.empty()) {
cout << q.front() << " ";
q.pop();
}
cout << endl;
// priority_queue
priority_queue<int> pq;
pq.push(5);
pq.push(1);
pq.push(4);
pq.push(6);
pq.pop();
pq.pop();
pq.push(2);
pq.push(3);
pq.pop();
pq.pop();
while (!pq.empty()) {
cout << pq.top() << " ";
pq.pop();
}
cout << endl;
return 0;
}
```
输出结果为:
```
2 1
2 3
4 5
```
阅读全文