[英]C++11 - Move each element of an array (raw array, std::array, std::vector) individually?
在C ++ 11中 ,它具有移動語義等等,人們可能想知道實際上可以移動什么。 一個例子是數組。 是否可以移動原始數組的每個元素,
int array1[8];
int array2[8];
array1[0] = std::move(array2[0]);
的std ::陣列,
std::array<int, 8> array1;
std::array<int, 8> array2;
array1[0] = std::move(array2[0]);
和std :: vectors
std::vector<int> array1;
std::vector<int> array2;
array1[0] = std::move(array2[0]);
獨立?
當然,假設在示例中使用某些數據正確初始化了array1
和array2
。 當您以所描述的方式處理單個數組元素時,它與移動單個變量時的過程完全相同 。
Foo var1;
Foo var2;
var1 = std::move(var2);
顯然,移動后源變量中的“遺留”取決於變量的類型,但只要您不需要從源變量中讀取任何內容,那么您就可以了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.