stack 栈 cpp 常用函数

栈(stack)详解与应用

stack 栈 实现先进后出的容器

#include

push()

入栈

top()

获得栈顶元素

pop()

弹出栈顶元素

empty()

可以检测stack内是否为空,返回true为空,返回false为非空

size()

返回stack内元素的个数

注意:

一般来说,栈的内存空间很小,当存入太多的时候,会导致程序运行崩溃

### C++ 中 `std::stack` 的 `pop()` 和 `top()` 方法 在 C++ 标准库中,`std::stack` 是一种容器适配器(container adapter),它提供了后进先出(LIFO, Last In First Out)的数据结构。`std::stack` 基于其他标准容器实现,默认情况下基于 `std::deque` 实现[^1]。 #### 删除顶元素:`pop()` `pop()` 函数用于移除顶的元素。需要注意的是,该函数不会返回被移除的元素值;如果需要获取顶元素,则应在此之前调用 `top()` 函数。以下是其行为描述: - **功能**:删除当前位于顶的元素。 - **时间复杂度**:O(1),因为仅涉及顶的操作。 - **注意事项**:调用前需确保不为空,否则可能导致未定义行为。 ```cpp #include <iostream> #include <stack> int main() { std::stack<int> s; s.push(10); s.push(20); // 移除顶元素 20 s.pop(); if (!s.empty()) { std::cout << "Top element after pop: " << s.top() << std::endl; // 输出 10 } return 0; } ``` #### 返回顶元素:`top()` `top()` 函数用于访问顶的元素而不将其移除。此方法允许读取或修改顶元素的内容。 - **功能**:返回顶元素的引用。 - **时间复杂度**:O(1)。 - **注意事项**:同样,在调用之前必须确认非空状态,否则可能引发错误。 ```cpp #include <iostream> #include <stack> int main() { std::stack<int> s; s.push(10); s.push(20); int topElement = s.top(); // 获取顶元素 20 std::cout << "Current top element is: " << topElement << std::endl; return 0; } ``` 上述代码展示了如何通过 `push()` 向中添加元素,并分别演示了 `pop()` 和 `top()` 的具体应用。 --- #### 关键点总结 - 调用 `pop()` 不会返回任何值,而只是简单地移除顶元素。 - 使用 `top()` 可安全地检索顶元素,但前提是不能为空。 - 如果尝试对空执行这些操作,可能会导致运行时异常或其他不可预测的行为。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只惠摸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值