ios - 访问多维数组的项目缓慢

标签 ios arrays multidimensional-array swift

我在使用 Swift 时遇到了一个小问题。

我正在将我的旧 C++ 代码移植到它,并且有几个地方我使用了二维数组。

Swift 代码现在看起来像:

var m_blocksSave:Array<Array<Int>>

var columns = 32
var rows = 32

//fill array with 0
    for column in 0..<columns {
        var columnArray = Array<Int>()
        for row in 0..<rows {
            columnArray.append(0)//default is 0
        }
        m_blocksSave.append(columnArray)

    }

然后我想检查这个数组,例如找到 1。事实上,对数组项的任何访问都会造成巨大的减速。

例如,此代码在我的机器上最多可能需要 4 秒(无论环境如何,我都可以将 iOS 与模拟器一起使用或将其作为 native OS X 应用程序运行):

    for var i=0;i<columns;i++
    {
        for var j=0;j<rows;j++
        {
            let intVariable = m_blocksSave[i][j]//this thing is slow
        }
    }

在这种情况下我能做什么,发生了什么事?为什么这么慢?

最佳答案

可以引用:Most efficient way to access multi-dimensional arrays in Swift? . 总而言之,现在二维数组不太好,你需要用一维数组构建自己的二维数组。

关于ios - 访问多维数组的项目缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24840056/

相关文章:

ios - Swift 和 Objective-C 是否共享相同的原生 API?

javascript - 在对象数组中查找属性的最小值和最大值的快速方法

javascript - 在javascript中解析csv数据在chrome中不起作用

java - java中如何设置多维数组的初值

c# - 多维数组符号之间的区别(object[][] 和 object[,])

ios - NSAttributedString 初始化数据 :options:documentAttributes:error: documentAttributes not retained in ARC

objective-c - UIscrollview滚动其他scrollview

c - 滑动算法

java - 这个二维数组可以存储多少个整数?

ios - 我需要访问 TableViewDelegate 之外的 TableView 的选定行的标题