容器数据结构如何理解
提到容器,很可能你首先会想到的就是数组、列表这些可以遍历的容器,但其实只要把某 种特定的数据封装在某个数据结构中,这个数据结构就是一个容器。比如 Option,它 是一个包裹了 T 存在或不存在的容器,而 Cow 是一个封装了内部数据 B 或被借用或拥有 所有权的容器。
把拥有相同类型对数据放在一起,统一处理
集合容器,顾名思义,就是把一系列拥有相同类型的数据放在一起,统一处理,比如:
我们熟悉的字符串 String、数组 [T; n]、列表 Vec 和哈希表 HashMap<K, V> 等;
虽然到处在使用,但还并不熟悉的切片 slice;
在其他语言中使用过,但在 Rust 中还没有用过的循环缓冲区 VecDeque、双向列 表 LinkedList 等。
这些集合容器有很多共性,比如可以被遍历、可以进行 map-reduce 操作、可以从一种类 型转换成另一种类型等等。