gpt4 book ai didi

arrays - Swift 二维数组 : Equal rights for rows and columns

转载 作者:行者123 更新时间:2023-11-30 12:15:01 24 4
gpt4 key购买 nike

给定简单的二维数组...

let grid = [[Cell]]()

...并填充 Cells 以创建 10 行 x 10 列矩阵。我可以通过以下方式访问网格的第 7 行...

let rowSeven = grid[6]

提取第 7 列全部内容的最简单方法是什么?我知道可以通过循环遍历每一行并提取每行中的第七个项目来完成,但我正在寻找一个可以以相同方式处理行和列的答案。

我特别愿意接受使用二维数组的替代方案的想法,因为将来我可能希望独立于网格中的行或列来映射和过滤单元格。

最佳答案

我认为您应该创建自己的类型(结构)来呈现您正在寻找的界面。然后,您可以根据需要实现该结构并更改它以满足您的需求,而无需更改使用该结构的代码。我期望这样的界面:

struct Grid<T> {
func at(x: Int, y: Int) -> T
func at(x: Int) -> [T]
func at(y: Int) -> [T]
// add setters as necessary.
}

您可以使用 2D 数组来实现上述内容,就像您在行主要或列主要中已有的那样,或者作为一维数组,或者作为稀疏数组(即,一个字典,其中键是 x,y 元组,值为 T。

更重要的是,您可以测试每种想法的性能,并使用最适合您情况的想法,无需更改使用网格结构的代码。

关于arrays - Swift 二维数组 : Equal rights for rows and columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45532241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com