gpt4 book ai didi

ios - 为什么 swift 数组中的 popLast() 方法具有复杂性 : O(n) if the array is bridged

转载 作者:行者123 更新时间:2023-11-28 06:10:48 26 4
gpt4 key购买 nike

讨论表明 swift 数组中的 popLast() 方法具有复杂度:O(n) 如果数组是桥接的,否则复杂度:O(1)。我们能否了解更多这方面的信息?

最佳答案

Array 具有写时复制语义,即当数组发生变化时,它必须检查它是否是其存储缓冲区的独占所有者。如果有其他数组共享缓冲区,则该数组必须先复制一份才能改变缓冲区。

至于你的问题:我相信如果一个数组是从 NSMutableArray(可能还有 NSArray,我不确定)桥接的,它不能可靠地确定是否其他所有者存在于 Objective-C 端,因此它总是必须制作副本。换句话说,桥接数组在第一次突变时转换为原生 Swift 数组,这是一个 O(n) 操作。

关于ios - 为什么 swift 数组中的 popLast() 方法具有复杂性 : O(n) if the array is bridged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46748339/

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