边界情况

10 分钟

空的栈、空的队列、只有一个节点的树……这些极端情况看着不起眼,却是 bug 最爱藏身的地方。平时代码跑得好好的,一遇到"空"或"只有一个"就崩,多半是没考虑边界。所以写完一定要拿这些情况试一试。

#include <iostream>
#include <stack>
using namespace std;
int main() {
    stack<int> st;
    if (!st.empty()) cout << st.top(); // 先判断,空栈就不取
    else cout << "栈是空的,不能取";     // 输出这句
}

血的教训:对空栈直接调用 st.top()st.pop() 是未定义行为,程序可能崩溃或给你一个乱七八糟的值。取之前永远先问一句"空不空"。

小纸条

从空栈里弹出会怎样?

登录 后可看答案

边界情况 · C++ 入门 · op599 课程