单独移动数组(raw array, 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::向量
std::vector<int> array1;
std::vector<int> array2;
array1[0] = std::move(array2[0]);
单独吗?
当然,假设array1
和array2
在您的示例中使用一些数据正确初始化。当你以你描述的方式处理单个数组元素时,与移动单个变量的过程完全相同。
Foo var1;
Foo var2;
var1 = std::move(var2);
下面是三个代码片段的实际示例。
显然,移动后源变量中"剩余"的内容取决于变量的类型,但只要您不需要从源变量中读取任何内容,那么就可以了。
相关文章:
- C++11 中不同类型的对象的 std::array 的替代方案
- constexpr begin of a std::array
- C++如果必须在编译时确定大小,std::array 有什么意义?
- 标准::unordered_map 中的 std::array 的值初始化
- 确保编译时的特定 std::array 位置
- std::array的长度有大小限制吗?
- 将 std::array 移动到另一个 std::array
- 为什么 std::shared_ptr 被认为是"heavy"和"expensive",但 std::array "same perfprmance as plain (c-style) arrays
- std::bind on statd::array 的运算符 []
- 检查输入 std::array 指针数据是否等于某个常量数组
- 如何读/写或遍历 std::array 中的特定元素范围?
- 是否可以使用 std::array 作为 POD 结构的数据容器?
- 如何在C++中传递一个大小未知的 std::array?
- 在现代C++中将 std::array<std:::array<T,N>> 转换为 std::vector<T>
- 在 C++ 中访问 std::array<std::array> 元素
- 将标量+std::array+std::tuple转换为一个大元组
- 如何初始化 std::array<std::array<T, 2>, 2> 的对象?
- 初始化 std::p air<double, std::array<std::p air<double, double>, 3> >
- 单独移动数组(raw array, std::array, std::vector)的每个元素
- 包装方法返回 c++ std::array<std::string, 4> in cython