【发布时间】:2020-03-15 23:24:57
【问题描述】:
Rust 的有序集是 BTreeSet:
use std::collections::BTreeSet; // Type inference lets us omit an explicit type signature (which // would be `BTreeSet<&str>` in this example). let mut books = BTreeSet::new(); // Add some books. books.insert("A Dance With Dragons"); books.insert("To Kill a Mockingbird"); books.insert("The Odyssey"); books.insert("The Great Gatsby");
有序映射是BTreeMap。
既然 set 和 map 是有序的,那么应该有一种方法来获取包含的最大和最小元素。你如何获得它们?
【问题讨论】:
-
为什么不改用
BinaryHeap,它有一个pop()方法。 -
@hellow 是的,如果您只需要读取值,可能更合适的是
peek。但我不确定你是否也能得到另一个极值。就我个人而言,我使用的是BTreeMaps,并且该顺序用于在集合中进行搜索。
标签: rust b-tree ordered-map ordered-set