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的排序方法
目录
相关文章
|
3月前
|
搜索推荐 索引
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理(二)
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理
|
3月前
|
搜索推荐 C++
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理(一)
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理
|
3月前
|
C++
【C++】C++STL 揭秘:Strng背后的底层逻辑(三)
【C++】C++STL 揭秘:Strng背后的底层逻辑
|
3月前
|
存储 C++ 索引
【C++】C++STL 揭秘:Strng背后的底层逻辑(二)
【C++】C++STL 揭秘:Strng背后的底层逻辑
|
3月前
|
编译器 Serverless C++
【C++】C++STL 揭秘:Strng背后的底层逻辑(一)
【C++】C++STL 揭秘:Strng背后的底层逻辑
|
3月前
|
存储 索引 Python
字典是怎么实现的,它的底层结构长什么样子?
字典是怎么实现的,它的底层结构长什么样子?
76 2
|
3月前
|
C++
【C++】C++ STL 探索:List使用与背后底层逻辑(三)
【C++】C++ STL 探索:List使用与背后底层逻辑
|
3月前
|
存储 编译器 C++
【C++】C++ STL 探索:List使用与背后底层逻辑(一)
【C++】C++ STL 探索:List使用与背后底层逻辑
|
3月前
|
C++
【C++】C++ STL 探索:List使用与背后底层逻辑(二)
【C++】C++ STL 探索:List使用与背后底层逻辑
|
3月前
|
人工智能 搜索推荐 算法
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理(三)
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理

热门文章

最新文章

下一篇
开通oss服务