我目前正在从
- 视觉工作室 2013 (v120)
- C++11
至
- 视觉工作室 2019 (v142)
- C++17
现在,我的测试在奇怪的地方失败了——我的索引越界崩溃和其他奇怪的行为变化。挖掘后,我注意到以下代码:
#include <iostream>
#include <vector>
int main()
{
std::vector<std::vector<int>> nestedVector;
nestedVector.insert(nestedVector.begin(), {});
std::cout << nestedVector.size() << " elements";
}
在 VS2013 中生成一个单元素向量,但在 VS2019 中生成一个空向量。
其他插入方式
nestedVector.insert(nestedVector.begin(), std::vector<int>{});
nestedVector.insert(nestedVector.begin(), std::vector<int>());
在两种设置中工作并正确添加新元素。这里发生了什么?