と の動作の違いに気付きましvector::push_back
たinsert
。
私がする時
iter = myVector.begin() + 5;
myVector.push_back(std::move(*iter));
ベクトルの 6 番目の要素が一番下に追加され、前の位置から削除されます。
一方、私がこれを行うと:
iterBegin = myVector.begin();
myVector.insert(iterBegin,std::move(*(iterBegin + 5)));
6 番目の要素は最初の位置に挿入されますが、前の位置から削除されません。
のようにstd::move
動作しないのはなぜですか?insert()
push_back()