如何利用std::deque实现栈的功能

avatar
作者
筋斗云
阅读量: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, topisEmpty 方法,以提供栈的基本功能。在 main 函数中,我们创建了一个 Stack 对象,并向其添加了一些元素,然后展示了如何使用这些方法。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!