在 C++11
之前,我使用 swap-to-back 来避免深度复制开销,例如:
vector<vector<Object> > Objects;
for(/* some range */)
{
vector<Object> v;
for(/* some other range */)
{
v.push_back(/* some object */);
}
Objects.push_back(vector<Object>());
Objects.back().swap(v);
}
我如何使用 std::move
将 v
移动到 Objects
中而不是 swap以避免深度复制开销
?
我知道这里有很多变通方法,比如多数组或直接插入 Objects.back()
,但我需要一个 std::move
的用法示例明白了。
最佳答案
Objects.push_back( std::move( v ) );
关于c++ - 使用 std::move,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7733741/