对于C++标准库中的移动构造函数和移动赋值操作符,有一种特殊的描述,即数据从其中移动的对象在调用后处于有效但未指定的状态。为什么?坦白说我不明白。这是我直觉所不期望的。真的,如果我在现实世界里把东西从一个地方移到另一个地方,我移动的地方是空的(是的,有效的),直到我搬到那里,一些新的东西。为什么在C++世界里应该有所不同呢?例如,取决于实现的如下代码:
std::vector<int> a {1, 2,
在C++中,我可以将一个项目插入到向量中的任意位置,就像下面的代码一样:vec.insert(vec.begin()+2,2);在Java中我不能做同样的事情,我得到了一个异常java.lang.ArrayIndexOutOfBoundsException,代码如下:
Vector l5 =new Ve