std::move
在 C++11 中,当我们想要将值移动(破坏性复制)到容器中时,我们可以通过使用来提高效率:
SomeExpensiveType x = /* ... */;
vec.push_back(std::move(x));
但我找不到任何相反的方向。我的意思是这样的:
SomeExpensiveType x = vec.back(); // copy!
vec.pop_back(); // argh
这在适配器的 like 上更频繁(复制弹出)stack
。这样的事情是否存在:
SomeExpensiveType x = vec.move_back(); // move and pop
避免复制?这已经存在了吗?我在n3000中找不到类似的东西。
我有一种感觉我错过了一些非常明显的东西(比如它的不必要性),所以我为“ru dum”做好了准备。:3