在 C 和 C++ 中,如何将数组中的某些元素移动到新数组中

In C and C++, how to move some elements in an array into a new array?

本文关键字:数组 移动 元素 新数组 C++      更新时间:2023-10-16

例如,如何将数组 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];
}