我试图理解的行为vector::pop_back().所以我有以下代码片段:
vector<int> test;
test.push_back(1);
test.pop_back();
cout << test.front() << endl;
Run Code Online (Sandbox Code Playgroud)
也许这是对的,但令我惊讶的是它打印出来1.所以我很困惑.是pop_back()唯一能够删除的元素有index > 0?
提前致谢!
bdo*_*lan 10
pop_back这里把矢量留空了.访问空向量front()是未定义的行为.这意味着任何事情都可能发生 - 没有预测到什么.它可能会崩溃,它可以返回1,它可以返回42,它可以打印"Hello,world!",它可以擦除你的硬盘,或者它可以通过你的鼻道传唤恶魔.就C++而言,任何这些都是可以接受的行为 - 这里恰好最终会返回1.不要依赖它.
| 归档时间: |
|
| 查看次数: |
971 次 |
| 最近记录: |