阅读量:0
std::deque
是一个双端队列,可以在其头部和尾部高效地添加和删除元素
#include<iostream> #include <deque> class Stack { public: // 向栈顶添加元素 void push(int value) { deque.push_back(value); } // 从栈顶移除并返回元素 int pop() { if (isEmpty()) { std::cerr << "Stack is empty!"<< std::endl; return -1; } int value = deque.back(); deque.pop_back(); return value; } // 返回栈顶元素 int top() { if (isEmpty()) { std::cerr << "Stack is empty!"<< std::endl; return -1; } return deque.back(); } // 判断栈是否为空 bool isEmpty() { return deque.empty(); } private: std::deque<int> deque; }; int main() { Stack stack; stack.push(1); stack.push(2); stack.push(3); std::cout << "Top element is: "<< stack.top()<< std::endl; stack.pop(); std::cout << "Top element is now: "<< stack.top()<< std::endl; return 0; }
这个示例中,我们创建了一个名为 Stack
的类,它使用 std::deque
作为内部数据结构。我们实现了 push
, pop
, top
和 isEmpty
方法,以提供栈的基本功能。在 main
函数中,我们创建了一个 Stack
对象,并向其添加了一些元素,然后展示了如何使用这些方法。