C++ stack用法总结

std::stack 是 C++ 标准模板库(STL)中的容器适配器,它提供了栈(stack)的功能,基于其他序列容器实现。以下是 std::stack 的用法总结:

包含头文件:

cpp 复制代码
#include <stack>

创建 std::stack 对象:

cpp 复制代码
std::stack<ElementType> myStack;
  • ElementType 是栈中元素的类型。

压入元素到栈中:

cpp 复制代码
myStack.push(element);

弹出栈顶元素:

cpp 复制代码
myStack.pop();

获取栈顶元素:

cpp 复制代码
ElementType topElement = myStack.top();

检查栈是否为空:

cpp 复制代码
bool isEmpty = myStack.empty();

获取栈的大小:

cpp 复制代码
size_t size = myStack.size();

示例:

cpp 复制代码
#include <iostream>
#include <stack>

int main() {
    std::stack<int> myStack;

    // 压入元素
    myStack.push(10);
    myStack.push(20);
    myStack.push(30);

    // 获取栈顶元素
    std::cout << "Top element: " << myStack.top() << std::endl;

    // 弹出栈顶元素
    myStack.pop();

    // 获取栈的大小
    std::cout << "Stack size: " << myStack.size() << std::endl;

    // 遍历栈(栈没有迭代器,需要弹出元素直至为空)
    while (!myStack.empty()) {
        std::cout << myStack.top() << " ";
        myStack.pop();
    }
    std::cout << std::endl;

    return 0;
}

这是一个简单的使用 std::stack 的例子。栈是一个后进先出(Last-In-First-Out,LIFO)的数据结构,std::stack 提供了对栈操作的方便接口。在实际应用中,栈常常用于解决问题,例如表达式求值、递归问题的迭代实现等。

相关推荐
野生技术架构师几秒前
Java 23 种设计模式:从踩坑到精通 —— 开篇及系列介绍
java·开发语言·设计模式
Wang ruoxi1 分钟前
Pygame 小游戏——数独
开发语言·python·pygame
人道领域7 分钟前
【LeetCode刷题日记】90.子集Ⅱ--- 归纳题解
java·开发语言·leetcode
随意起个昵称8 分钟前
线性dp-LIS题目5(导弹拦截,二分优化)
c++·算法·动态规划
ch.ju13 分钟前
Java Programming Chapter 4——Characteristics of inheritance
java·开发语言
复园电子15 分钟前
企业PDF批量盖章开发集成指南:API对接OA/LIMS系统,高并发落地实战
开发语言·python·pdf
光电笑映18 分钟前
进程间通信:深入 System V IPC:共享内存、消息队列与信号量
linux·运维·服务器·c++
SunnyDays101119 分钟前
如何使用 C# 自动调整 Excel 行高和列宽
开发语言·c#·excel
a诠释淡然32 分钟前
C++模板元编程—现代C++的黑魔法
开发语言·c++
汉克老师32 分钟前
GESP2026年3月认证C++六级真题与解析(单选题1-8)
c++·多态··构造函数·循环队列·bst·gesp6级