【发布时间】:2014-12-05 15:24:11
【问题描述】:
我有一个指针* double 数组,基本上,它们按任意顺序编入索引。
例如,
double[0][0] = 80.0
double[3][0] = 56.8
double[4][0] = 56.7
例如,我如何检查double[1][2] 是否存在,如果不存在则创建一个。
我不打算使用vectors 或任何'fancy',只是简单的数组。
【问题讨论】:
-
仅使用普通数组就不行。您需要以某种方式跟踪大小。
-
如果您打算在已知大小的数组上执行此操作,您可以使用默认值初始化所有索引,然后进行简单检查。如果你想创建一个可变数组,它的大小会动态增长,那么我建议使用“更高级”的东西。
-
你最好的办法是用一些哨兵值初始化数组,一个真实数据永远不会有的值。然后
if(array[3][4]==SENTINEL) {等等。 -
完整的数组大小是在代码声明数组时创建的。之后的任何事情都只是填写和读取值。 --or-- 你的意思是:如何判断一个数组条目是否已经被填写?
-
正确答案取决于您是否将
array声明为double array[N][M]或double *array[N]或double **array。在第一种情况下,只要0 <= x < N和0 <= y < M,那么array[x][y]就存在(尽管如果你从未初始化它可能是垃圾)。在其他情况下,您必须解释分配是如何完成的......