在 C 和 C++ 中,如何将数组中的某些元素移动到新数组中
In C and C++, how to move some elements in an array into a new array?
例如,如何将数组 A 中的第 1、5 和 10 个元素移动到新的三元素数组 B 而不单独分配三次?
在 C 中,只需声明并初始化一个具有数组选定元素的新数组。无需分配。
int main(void)
{
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int b[3] = {a[0], a[4], a[9]};
return 0;
}
请记住,具有自动存储持续时间的数组的初始值设定项不必是常量。
只需完成三项作业!你为什么避免它?
int ar1[10], ar2[10];
ar2[0] = ar1[0];
ar2[4] = ar1[4];
ar2[9] = ar1[9];
但是,如果您有很多索引要移动,也许您需要另一种方式。
我建议这个:
int ar1[1000], ar2[1000];
int indices[] = { 1, 3, 54, 6, 23, 35, 9, 42, 44, 995, 722, .... };
for (int i = 0; i < sizeof(indices) / sizeof(indices[0]); i++)
{
ar2[i] = ar1[i];
}
相关文章:
- 移动二维数组中的字符
- 新的整数数组向右移动?
- 当 std::move 与 C 样式数组或不移动对象时会发生什么
- 在数组中输入 n 个整数的列表,并以类似于钟摆来回移动的方式排列它们. 输入-1 3 2 5 4,输出5 3 1 2 4
- 数组指针表示法C++(移动数组时)
- C++ - 块不移动,我的数组不起作用
- 如何将数组中的元素向右移动?
- 如何将不可移动和不可复制的函数返回值获取到数组中
- C++ - 移动具有固定大小的 c 样式数组成员的类的构造函数
- C++将值移动到数组的开头
- 在 c++ 中将数据从未对齐结构数组移动到对齐结构数组
- 尝试通过多个函数移动数组,但遇到了我不知道如何修复的错误
- 如何在C++中有效地将数组移动到向量
- 移动数组C++中的特定元素
- 将数组中的零移动到末尾
- 如何在C++中将 std::vector 移动到原始数组中
- 从Boost Multi_index数组移动元素
- C++数组移动到元素
- 弹出后使用数组>>移动元素排队
- 从 C 数组移动到 std::map<int, val> 运算符 '-' 陷阱