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