19 深入理解数组:底层探究

简介: 深入理解数组:底层探究

深入理解数组:底层实现探究


数组的协议结构


image.png


Sequence


  • 一个序列(sequence)代表的是一系列具有相同类型的值,你可以对这些值进行迭代


image.png


IteratorProtocol


  • Sequence通过创建一个迭代器来提供对元素的访问。迭代器每次产生一个序列的值,并且当遍历序列时对遍历状态进行管理
  • 当序列被耗尽时,next()应该返回nil


image.png


定义自己的Sequence


image.png


Collection

  • 一个Collection是满足下面条件的Sequence
  • 稳定的Sequence,能够被多次遍历且保持一直
  • 除了线性遍历以外,集合中的元素也可以通过下标索引的方式被获取到
  • 和Sequence不同,Collection类型不能是无限的


image.png


Array的迭代器


image.png


Array的下标访问


image.png


Array的buffer


image.png


_ContiguousArrayBuffer


image.png


_ContiguousArrayBuffer的getElement


image.png


UnsateMutablePointer的下标操作


image.png


问题:endIndex vs count


image.png


索引


image.png


image.png


课后探索

  • 学习removeFirst方法的源码,得出removeFirst的复杂度
  • 学习sort方法的源码,了解Array的排序方法
目录
相关文章
|
自然语言处理 算法 测试技术
【数据结构原理】系统生命周期 | 算法规范 | 笔记
【数据结构原理】系统生命周期 | 算法规范 | 笔记
84 0
|
存储 算法 程序员
深入探讨栈数据结构:定义、特性和应用
深入探讨栈数据结构:定义、特性和应用
|
1月前
|
搜索推荐 索引
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理(二)
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理
|
1月前
|
搜索推荐 C++
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理(一)
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理
|
1月前
|
C++
【C++】C++ STL 探索:List使用与背后底层逻辑(二)
【C++】C++ STL 探索:List使用与背后底层逻辑
|
1月前
|
存储 编译器 C++
【C++】C++ STL 探索:List使用与背后底层逻辑(一)
【C++】C++ STL 探索:List使用与背后底层逻辑
|
1月前
|
C++
【C++】C++ STL 探索:List使用与背后底层逻辑(三)
【C++】C++ STL 探索:List使用与背后底层逻辑
|
1月前
|
编译器 Serverless C++
【C++】C++STL 揭秘:Strng背后的底层逻辑(一)
【C++】C++STL 揭秘:Strng背后的底层逻辑
|
1月前
|
C++
【C++】C++STL 揭秘:Strng背后的底层逻辑(三)
【C++】C++STL 揭秘:Strng背后的底层逻辑
|
1月前
|
存储 C++ 索引
【C++】C++STL 揭秘:Strng背后的底层逻辑(二)
【C++】C++STL 揭秘:Strng背后的底层逻辑