访问多维数组项目的速度很慢



我在使用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模拟器或将其作为本机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
        }
    }

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

你可以参考:在Swift中访问多维数组的最有效方法?总之,2D数组现在不是很好,你需要用1D数组构建你自己的2D数组。

相关内容

  • 没有找到相关文章

最新更新