c++ - 从二维初始化数组访问值

标签 c++ multidimensional-array

int a[][30]={{2, 16},{4, 8},{5, 16, 21},{2,6,3,5,6}};

由于第二个维度的大小是变化的。如果我想访问诸如 i(第一维)的特定值之类的东西,访问所有 j 值(第二维),我该如何编写该语句?

我的想法是:

for(int j=0;j<30;j++)
  a[i][j]=some operation;

但它不必要地循环到最大值 30。什么是有效的方法?

谢谢。

最佳答案

编译器不会保留任何有关花括号初始化器中有多少个值的信息。相反,它用零填充“缺失”值。

所以这两个是等价的:

int a[][4] = {{2, 16},{4, 8, 5}};
int a[][4] = {{2, 16, 0, 0}, {4, 8, 5, 0}};

如果您知道“实际”数据元素都不为零,则可以在找到零元素时停止循环。否则,您需要以不同方式设置数据。

关于c++ - 从二维初始化数组访问值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5413371/

相关文章:

javascript - 我怎样才能使这个递归?

c++ - 为什么不在 GotW 54 中调整和清除作品?

c++ - 具有棘手的 lambda 表达式的奇怪未定义行为

c++ - 错误 : ambiguous overload for ‘operator[]’ when using boost-bind to boost-function

matlab - 3d 矩阵 : how to use (row, 列)与 MATLAB 中的第三维通配符配对?

lua - 在lua中遍历二维数组

c++ - char * 和 string 的区别

c++ - QThread::终止与杀死

javascript - 访问对象内的深层嵌套数组

java - 康威的生命游戏规则不适用