arrays - Int 的 Swift 3 二维数组

标签 arrays swift 2d swift3

这其实是一个很简单的问题,但是一个小时后我无法解决我的问题。

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

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

试图改变值(value):

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 - Int 的 Swift 3 二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39898434/

相关文章:

objective-c - 如何以编程方式从 View 层次结构中的另一个 subview 引用 subview ?

c++ - DX11 Sprite 问题

将项目添加到数组时出现 Java 异常

c++ - 类中动态分配的数组

javascript - 如何在不改变原始数组的情况下对数组进行排序?

ios - GPS 坐标的完成 block

java - 在链表数组中找到最长的链表

regex - 在 Swift 中使用模板的 NSRegularExpression

python - 从 Game Maker 到 Python

c - 如何在 C 中将 token 字符中的值设置为名为 customerData[][] 的数组?