rust btreeset 怎么用
时间: 2023-09-16 19:14:01 浏览: 66
否定选择:用Rust编写的否定选择
rust中的BTreeSet是一个有序的、不重复的集合数据结构。它基于平衡树(B-Tree)实现,可以在log(n)的时间复杂度内进行插入、删除和查找操作。
下面是一些常见的用法示例:
1. 创建BTreeSet并插入元素:
```rust
use std::collections::BTreeSet;
let mut set = BTreeSet::new();
set.insert(1);
set.insert(2);
set.insert(3);
```
2. 删除元素:
```rust
set.remove(&2);
```
3. 检查元素是否存在:
```rust
assert!(set.contains(&1));
assert!(!set.contains(&2));
```
4. 迭代元素:
```rust
for x in &set {
println!("{}", x);
}
```
5. 获取第一个和最后一个元素:
```rust
assert_eq!(set.first(), Some(&1));
assert_eq!(set.last(), Some(&3));
```
6. 获取小于、大于、小于等于、大于等于某个元素的所有元素:
```rust
assert_eq!(set.range(..2).collect::<Vec<_>>(), vec![&1]);
assert_eq!(set.range(2..).collect::<Vec<_>>(), vec![&3]);
assert_eq!(set.range(..=2).collect::<Vec<_>>(), vec![&1, &2]);
assert_eq!(set.range(2..=3).collect::<Vec<_>>(), vec![&3]);
```
注意BTreeSet中元素的顺序是按照元素的大小进行排序的,因此可以使用range方法来查找一定范围内的元素。
更多用法可以参考官方文档:https://doc.rust-lang.org/std/collections/struct.BTreeSet.html
阅读全文