调用emptyStack.top()时返回什么

时间:2018-12-23 01:30:07

标签: c++ types stack

在使用空堆栈调用stack.top()时,究竟返回什么(值,类型等)?

#include <stack>
#include <iostream>
using namespace std;

int main() {
    stack<char> thing;
    sometype topChar = thing.top();
    cout << topChar << endl;
}

1 个答案:

答案 0 :(得分:3)

top返回引用。这等效于调用基础容器的back方法。如您所料,当尝试引用不存在的内容时,结果是不确定的。

cppreference,在讨论未定义的行为状态时:

  

对该程序的行为没有任何限制

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