在使用空堆栈调用stack.top()
时,究竟返回什么(值,类型等)?
#include <stack>
#include <iostream>
using namespace std;
int main() {
stack<char> thing;
sometype topChar = thing.top();
cout << topChar << endl;
}
答案 0 :(得分:3)
top
返回引用。这等效于调用基础容器的back
方法。如您所料,当尝试引用不存在的内容时,结果是不确定的。
cppreference,在讨论未定义的行为状态时:
对该程序的行为没有任何限制
换句话说,任何事情都会发生,因此您应该避免在空容器上使用top
。使用top
时,请始终确保容器不为空。