如何轻松将“双数据类型”的第二个数组元素初始化为-1或0[重复]

Posted

技术标签:

【中文标题】如何轻松将“双数据类型”的第二个数组元素初始化为-1或0[重复]【英文标题】:How can I initialize 2nd array elements which are 'double data type' as -1 or 0 easily [duplicate] 【发布时间】:2016-07-15 05:58:10 【问题描述】:

我想轻松地将双第二个数组元素初始化为 -1 或 0。

如果是整数,我们可以这样写

int cache[100][100];
memset(cache, -1, 100*100*sizeof(int));

但是如果是双精度,我怎样才能轻松地初始化这个第二个数组?我能处理的最好的方法,但很丑,在下面

double cache[100][100];
for(int i=0; i<100; i++)
   for(int j=0; j<100; j++)
       cache[i][j] = -1;

有人知道这方面的最佳解决方案吗?

【问题讨论】:

您确定整数版本符合您的预期吗? memset 用一致的字节填充内存区域,而不是 int。第 2 版更清楚地表明了您真正想要实现的目标。 版本 1 表示二进制补码 我知道你的意思。因此,'memset'可以填充一个内存区域-1或0。我想知道的是有一定的STL可以实现上述目标。 @LưuVĩnhPhúc 不确定它是否重复,因为该答案并没有真正解决 2D 数组(或者如果确实如此,我看起来不够努力 ;-) 【参考方案1】:

将数组的元素初始化为0 很简单。

double cache[100][100] = ;

将它们初始化为-1 并不容易。您必须将整个数组写成:

double cache[100][100] = -1, repeat 10000 times;

您可以使用以下方法将它们设置为-1

std::fill(cache[0], cache[0]+100*100, -1);

【讨论】:

太棒了!这就是我想知道的

以上是关于如何轻松将“双数据类型”的第二个数组元素初始化为-1或0[重复]的主要内容,如果未能解决你的问题,请参考以下文章

为啥只有数组的第一个元素被初始化为-1?而其余的都是0 [重复]

比较java中数组的元素

Scala数据结构

请教Delphi高手:如何将字符数组初始化

PHP 使用 2 个数组,如何根据第一个数组的顺序获取两个数组中存在的第一个元素?

如何从javascript中第二个数组中存在的数组中删除元素? [复制]