美文网首页算法数据结构
iOS 数组的内部实现分析

iOS 数组的内部实现分析

作者: 人魔七七 | 来源:发表于2018-05-30 18:00 被阅读70次

    C 语言的数组内存是线性连续的,所以如果操作数组的一些操作可能移动内存中的元素。比如删除或者添加到第零个索引 都要移动后面的元素。效果图:



    iOS 的数组是类似双端队列的环形结构。但是两端删除增加的效率比较快相比中间某个索引。因为中间删除添加会在内存中移动部分元素。




    删除添加元素到数组是没有改变他的内存大小的,之前占用的空间还在只是元素对象销毁了,如果内存不够用每次重新创建原来1.625倍大小的size,为什么是1.625倍大小而不是两倍大小看具体解释:https://github.com/facebook/folly/blob/master/folly/docs/FBVector.md#memory-handling

    相关文章

      网友评论

        本文标题:iOS 数组的内部实现分析

        本文链接:https://www.haomeiwen.com/subject/omsxsftx.html