如何在不使用 for 循环的情况下填充二维数组?

Posted

技术标签:

【中文标题】如何在不使用 for 循环的情况下填充二维数组?【英文标题】:How to fill a 2D array without using a for loop? 【发布时间】:2018-07-08 22:11:53 【问题描述】:

我想填充一个二维数组,但不能保证完全填充。通常我会使用嵌套的 for 循环,如下所示:

for(i = 0; i < 10; i++)

  for(j = 0; j < 10; j++)
  
    array[i][j] = 1;
  

在这种情况下,我将完全填充它。

但是,一开始我不知道我要在里面放多少元素。我考虑了一个带有标记值的while,但是我应该在控制语句中放入一个控制语句以确保该值不会超过数组的大小,对吗?

我放在这里的代码只是一个例子,实际上我很好奇填充数组的不同方法,因为我一直看到for 或嵌套for,我想知道是否还有其他方法可以做它。提前致谢。

【问题讨论】:

参考问题***.com/questions/17288859/… 这可能对你有用。 您确实知道数组的边界并想完全填充它,还是只填充到某个点? 我认为你仍然需要一个for 循环,你只需要根据你已知的大小限制循环的结束条件。例如for(I=0;i&lt;ZZZ;++I) 其中ZZZ 是您最想填写的。还可以使用malloc() 查看动态数组 @R.S.我一开始就知道数组的维度,因为它是静态的,但我想知道,如果我不必完全填充数组,我可以使用什么样的命令来代替带中断的 for 循环? 值之间的迭代可以通过多种方式实现。对于,while,do,recursion 等。您只需要了解它们并选择最适合您的情况。老实说,我不认为我理解你的问题。在这种情况下,大多数情况下,阅读代码的任何人都可以理解和理解 【参考方案1】:

首先将它们存储在一维数组中,然后您可以从一维数组转移到二维数组,并在嵌套的 forloop 中检查一维数组中是否有元素。这样解决了吗?

【讨论】:

以上是关于如何在不使用 for 循环的情况下填充二维数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 for 循环的情况下从 appsettings 文件中读取对象数组中特定键的值

如何在没有循环的情况下填充 char 数组

根据一维数组中的值更改二维numpy数组中的某些值而无需for循环

如何在不知道维度的情况下在 C++ 中传递二维数组 [重复]

如何在不循环的情况下将数组(Range.Value)传递给本机 .NET 类型?

如何在不使用 for 循环的情况下创建一个新列表,其中 new_array[i][j] = b[a[i][j]](a 是数组,b 是向量)