特定
std::list<std::vector<float>> foo; std::vector<float> bar;
如何在不复制数据的情况下将条形图移动到foo的末尾?
这个可以吗?
foo.emplace_back(std::move(bar));
解决方法
Is this ok?
foo.emplace_back(std::move(bar));
是的,因为:
> std :: move(bar)将条形转换为rvalue引用.
> std::list::emplace_back
采取任意数量的forwarding references,并使用它们来构造一个元素.
> std::vector::vector
有一个过载(6),它获取一个rvalue引用,它将不执行任何拷贝移动rhs向量的内容.