legongju.com
我们一直在努力
2025-01-20 01:52 | 星期一

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

std::deque 是一个双端队列,可以在其头部和尾部高效地添加和删除元素

#include
#include 

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 = https://www.yisu.com/ask/deque.back();"hljs">int top() {
        if (isEmpty()) {
            std::cerr << "Stack is empty!"<< std::endl;
            return -1;
        }
        return deque.back();
    }

    // 判断栈是否为空
    bool isEmpty() {
        return deque.empty();
    }

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

未经允许不得转载 » 本文链接:https://www.legongju.com/article/105923.html

相关推荐

  • c++ mysql库的数据更新与删除操作

    c++ mysql库的数据更新与删除操作

    在C++中,可以使用MySQL C++ Connector库来进行数据更新和删除操作。以下是一个简单的示例代码,展示如何使用MySQL C++ Connector库来进行数据更新和删除操作:<...

  • c++ memset_s与memset有何不同

    c++ memset_s与memset有何不同

    memset_s 和 memset 都是 C++ 中用于设置内存区域的函数,但它们之间存在一些关键差异 安全性:memset_s 是一个更安全的版本,因为它会检查目标缓冲区的大小。如...

  • c++中使用memset_s需要注意什么

    c++中使用memset_s需要注意什么

    在C++中,memset_s函数是一个安全的内存设置函数,它可以防止缓冲区溢出 包含头文件:在使用memset_s之前,请确保已经包含了正确的头文件。对于C++,应该包含头文...

  • c++ memset_s如何安全清零内存

    c++ memset_s如何安全清零内存

    在C++中,memset_s是一个安全的方法来清零内存
    #include
    #include int main() { char buffer[100]; // 填充缓冲区 for (int i = 0; i< sizeof(buffer)...

  • std::deque在C++中的迭代器失效问题

    std::deque在C++中的迭代器失效问题

    std::deque 是 C++ 标准库中的一个容器,它提供了双端队列的功能 插入或删除元素时,如果导致分配新的内存空间,那么指向原来内存空间的迭代器将会失效。这种情况...

  • 如何避免std::deque的常见陷阱

    如何避免std::deque的常见陷阱

    std::deque 是一个非常有用的 C++ 容器,它提供了类似于动态数组的功能,支持在两端高效地插入和删除元素 不要保存指向 deque 元素的指针或引用:当你向 deque 添...

  • 如何将matplot图表导出为图片

    如何将matplot图表导出为图片

    要将Matplotlib图表导出为图片,您需要使用savefig方法
    import matplotlib.pyplot as plt # 创建一个简单的图形
    x = [1, 2, 3, 4]
    y = [1, 4, 9,...

  • matplot在C++中的交互式绘图功能

    matplot在C++中的交互式绘图功能

    在C++中,你可以使用第三方库,如Matplotlib-cpp,来实现与Python中Matplotlib类似的交互式绘图功能
    以下是一个使用Matplotlib-cpp绘制简单线性图的示例:<...