C++ stack 与 queue 的使用与模拟实现
一、stack 与 queue 使用
两者的接口都很简单,来简单应用一下吧。
#include <stack>
#include <iostream>
using namespace std;
int main() {
stack<int> st;
st.push(1);
st.push(2);
st.push(3);
while (!st.empty()) {
cout << st.top() << " ";
// 输出:3 2 1
st.pop();
}
return 0;
}
输出:3 2 1
接着来看几个相对应的题吧:
题 1:用栈实现队列 这个题很简单,但是我们要来体会 C++ 中 STL 的方便,假设我们用 C 语言来完成的话,首先要自己实现一个栈才可以解题,但 C++ 不需要。 参考题解:
class MyQueue {
private:
stack<int> inStack, outStack;
void in2out() {
while (!inStack.empty()) {
outStack.push(inStack.top());
inStack.pop();
}
}
public:
MyQueue() {}
void push { inStack.(x); }
{
(outStack.()) {
();
}
x = outStack.();
outStack.();
x;
}
{
(outStack.()) {
();
}
outStack.();
}
{
inStack.() && outStack.();
}
};


