【发布时间】:2020-03-30 13:20:07
【问题描述】:
如果我有一个向量std::vector<int64_t> oldData,我可以使用移动语义将数据移动到另一个向量std::vector<uint8_t> newData。
而不是做:
std::vector<uint8_t> newData(oldData.begin(),oldData.end());
可以吗
std::vector<uint8_t> newData = std::move(oldData);
这是否会真正移动数据而不是复制数据并提高性能?
【问题讨论】:
-
如果您只想将旧向量中的数据视为字节数组,您可以使用
uint8_t* newData = reinterpret_cast<uint8_t*>(oldData.data());。 -
做不到!注意
oldData是一个int64_t类型的数组。
标签: c++ move-semantics