调用 emptyStack.top() 时返回的内容

What is returned when calling emptyStack.top()

本文关键字:返回 emptyStack top 调用      更新时间:2023-10-16

当用空堆栈调用stack.top()时,到底返回什么(值、类型等)?

#include <stack>
#include <iostream>
using namespace std;
int main() {
    stack<char> thing;
    sometype topChar = thing.top();
    cout << topChar << endl;
}

top返回一个引用。它等效于调用基础容器的 back 方法。正如您在尝试获取对不存在的内容的引用时所期望的那样,结果是未定义的。

CPP 首选项,在讨论未定义的行为状态时:

对程序的行为没有限制

换句话说,任何事情都可能发生,因此您应该避免在空容器上使用top。使用 top 时,始终确保容器不为空。