c++ stack容器

在C++中,std::stack 是一个标准模板库(STL)中的容器适配器,它提供了一种后进先出(LIFO, Last In First Out)的数据结构。std::stack 容器适配器基于底层容器(默认是 std::deque,但也可以由用户指定)进行封装,只暴露了栈的基本操作接口。

以下是一些常用的 std::stack 操作:

包含头文件
std::stack<int> s;  // 创建一个int类型的栈

 

创建栈
std::stack<int> s;  // 创建一个int类型的栈
基本操作
  • push(element): 在栈顶添加元素。
  • pop(): 移除栈顶元素。
  • top(): 返回栈顶元素,但不移除它。
  • empty(): 如果栈为空,则返回 true
  • size(): 返回栈中元素的数量。
示例
#include <iostream>  
#include <stack>  
  
int main() {  
    std::stack<int> s;  
  
    // 向栈中添加元素  
    s.push(1);  
    s.push(2);  
    s.push(3);  
  
    // 访问栈顶元素  
    std::cout << "栈顶元素: " << s.top() << std::endl;  
  
    // 移除栈顶元素  
    s.pop();  
  
    // 检查栈是否为空  
    if (s.empty()) {  
        std::cout << "栈为空" << std::endl;  
    } else {  
        std::cout << "栈不为空" << std::endl;  
    }  
  
    // 获取栈的大小  
    std::cout << "栈的大小: " << s.size() << std::endl;  
  
    return 0;  
}
自定义底层容器 

虽然 std::stack 默认使用 std::deque 作为底层容器,但你也可以指定其他容器,例如 std::vector 或 std::list。这可以通过在 std::stack 的模板参数中指定来实现。但请注意,不是所有的容器都适合作为栈的底层容器,特别是那些不支持在容器中间快速插入或删除元素的容器。

例如,使用 std::vector 作为底层容器的栈:

std::stack<int, std::vector<int>> s;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值