簡體   English   中英

C ++ 11 - 單獨移動數組的每個元素(原始數組,std :: array,std :: vector)?

[英]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]);

獨立?

當然,假設在示例中使用某些數據正確初始化了array1array2 當您以所描述的方式處理單個數組元素時,它與移動單個變量時的過程完全相同

Foo var1;
Foo var2;
var1 = std::move(var2);

以下是您的三個代碼段的實際示例。

顯然,移動后源變量中的“遺留”取決於變量的類型,但只要您不需要從源變量中讀取任何內容,那么您就可以了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM