c – 将项目移动到列表中,不进行复制

前端之家收集整理的这篇文章主要介绍了c – 将项目移动到列表中,不进行复制前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
特定
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向量的内容.

原文链接:https://www.f2er.com/c/115901.html

猜你在找的C&C++相关文章