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

   2024-09-30 2480
核心提示:std::deque 是一个双端队列,可以在其头部和尾部高效地添加和删除元素#includeiostream#include dequeclass Stack {public:// 向

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 对象,并向其添加了一些元素,然后展示了如何使用这些方法。

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号