arrays - Swift 3 二维 Int 数组

标签 arrays swift 2d swift3

这实际上是一个非常简单的问题,但是一个小时后我无法解决我的问题。

我需要创建一个 Int 的二维数组。

var arr = [[Int]]()
or
var arr : [[Int]] = []

尝试更改值:

arr[x][y] = 1

fatal error :索引超出范围

我应该使用 APPEND 还是需要指定数组的大小?

我很困惑..

最佳答案

这件事确实不简单。该行:

var arr : [[Int]] = []

创建一个 Array of Array of Int 类型的变量,最初该数组为空。您需要像 Swift 中的任何其他数组一样填充它。

让我们回到单个数组:

var row : [Int] = []

您现在有一个空数组。你不能只是这样做:

row[6] = 10

您首先必须向数组添加 7 个值,然后才能访问索引 6 处的值(第 7 个值)。

对于数组数组,您需要用一整套内部数组填充外部数组。每个内部数组都需要填充适当数量的值。

这是一种初始化数组数组的简单方法,假设您想要一个预填充矩阵,每个值都设置为 0。

var matrix : [[Int]] = Array(repeating: Array(repeating: 0, count: 10), count: 10)

外部计数表示行数,内部计数表示列数。根据需要调整每个。

现在您可以访问矩阵中的任何单元格:

matrix[x][y] = 1 // where x and y are from 0 to rows-1/columns-1

关于arrays - Swift 3 二维 Int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55507665/

相关文章:

algorithm - 我怎样才能找到包含一些给定点的最小圆圈?

java - 如何在 Java 中创建数组的简单图形显示?

javascript - 如何在 JavaScript 中多次打乱数组

JavaScript array.prototype 如何将 'this' 设置为方法获取的新数组

ios - CGContextDrawImage (Swift) 上的间歇性 "incorrect checksum for freed object"错误

ios - AVDepthData 可以返回超过 8 位的数据吗?

java - A* 寻路算法运行速度极慢

javascript - 使用由两个 .map() 组成的两个数组创建一个变量,寻找匹配项或交集

实际 HTML 元素的 JAVASCRIPT 数组

ios - 如何将标签结果保留在 secondViewController 上?