【发布时间】:2019-08-13 14:47:17
【问题描述】:
下面的代码将数据从一个向量复制到另一个向量。如果向量很大,那么我想这很昂贵。是否可以在这里使用移动语义将数据从一个向量复制到另一个向量?
std::vector<double> newData(Shape.Size(), 0);
std::vector<double> oldData = a->getData();
std::copy(oldData.begin(), oldData.end(), newData.begin());
【问题讨论】:
-
可以将数据从一个向量移动到另一个向量;结果当然是源向量将仅包含已移动的数据,即其中的数据将被更改。你的场景可以吗?
-
@Angew 你的意思是源向量将包含
garbage数据,因为原始数据已被移动? -
move sematics to copy data from one vector to another移动的重点是避免复制... -
@Borgleader 确认并更新感谢
-
在这个例子中,复制和移动没有区别,因为向量包含不受移动影响的类型。
标签: c++ c++11 vector move-semantics