对pop_back(),C感到困惑

我试图理解vector :: pop_back()的行为.所以我有以下代码片段:

vector<int> test;
test.push_back(1);
test.pop_back();
cout << test.front() << endl;

也许这是对的,但令我惊讶的是它打印出来1.所以我很困惑. pop_back()只能删除元素索引> 0?

提前致谢!

最佳答案
您通过在空向量上调用front来调用未定义的行为.这就像索引一个数组的边界.任何事情都可能发生,包括返回1.

转载注明原文:对pop_back(),C感到困惑 - 代码日志