将多维数组甚至元素传递给一维数组

时间:2017-03-13 22:36:10

标签: c++ arrays multidimensional-array

我有一个10 x 10 arr[10][10]的多维数组 我想将偶数转移到另一个数组,这是一维even[50]这就是我所做的:

for (int x = 0; x < 10; x++) {
        if (arr[0][x] % 2 == 0) {
            even[x] = arr[0][x];
        }
    }

现在假设{0,1,2,3,4,5,6,7,8,9}上有arr[0][x] 我现在遇到的问题是if语句的作用是偶数元素,例如{6}存储在even[6]even[5]以及{{1}上的其他奇数数组将没有任何值只是他们只有随机的内存数我希望偶数元素彼此相邻,如

even[]依此类推

有更有效的方法吗?感谢

1 个答案:

答案 0 :(得分:2)

使用2个索引

size_t even_index = 0;

// some looping condition
for (int x = 0; x < 10; x++) {
    // Some filter test
    if (arr[0][x] % 2 == 0) {
        if (even_index >= 50) Oops_Handle_Error();
        even[even_index++] = arr[0][x];
    }
}

printf("even[] elements used:%zu\n", even_index);