【Rust】有趣的Rust-01

2022-11-16  本文已影响0人  小伙纸2022

Rust 的集合可以分为四个主要类别

  • 序列: Vec、VecDeque、LinkedList
  • Maps: HashMap, BTreeMap
  • 集合: HashSet、BTreeSet
  • 混杂: BinaryHeap

什么时候应该使用哪个集合?

在以下情况下,请使用 Vec:

在以下情况下,请使用 VecDeque:

在以下情况下,请使用 HashMap:

在以下情况下,请使用 BTreeMap:

在以下情况下,请使用任何这些 Map 的 Set 变体:

在以下情况下,请使用 BinaryHeap:

性能比较

Sequences

get(i) insert(i) remove(i) append split_off(i)
Vec O(1) O(n-i)* O(n-i) O(m)* O(n-i)
VecDeque O(1) O(min(i, n-i))* O(min(i, n-i)) O(m)* O(min(i, n-i))
LinkedList O(min(i, n-i)) O(min(i, n-i)) O(min(i, n-i)) O(1) O(min(i, n-i))

Maps

get insert range remove append
HashMap O(1)~ O(1)~* O(1)~ N/A N/A
BTreeMap O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(n+m)
上一篇 下一篇

猜你喜欢

热点阅读