c++

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

小樊
81
2024-08-30 02:23:24
栏目: 编程语言

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

0
看了该问题的人还看了