如何在稳定的Rust中使用std :: collections :: BitSet?

kum*_*mo2 5 rust

我试图使用BitSet数据结构,但它给我一个编译错误,说它无法找到BitSet.std::collections::BitSet在稳定版本中发布?

use std::collections::BitSet;

fn main() {
    println!("Hello, world!");
}
Run Code Online (Sandbox Code Playgroud)

产生错误:

error[E0432]: unresolved import `std::collections::BitSet`
 --> src/main.rs:1:5
  |
1 | use std::collections::BitSet;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^ no `BitSet` in `collections`
Run Code Online (Sandbox Code Playgroud)

Mas*_*ara 5

它似乎BitSet 存在于Rust 1.3.0中,这是非常古老的,但当时已经被弃用并最终被此提交删除.

相反,您可以使用bit-setcrate,如上面的弃用消息所示.还有文件.

extern crate bit_set;

use bit_set::BitSet;

fn main() {
    let mut s = BitSet::new();
    s.insert(32);
    s.insert(37);
    s.insert(3);
    println!("s = {:?}", s);
}
Run Code Online (Sandbox Code Playgroud)

您必须以bit-set某种方式向包添加依赖项.如果你使用货物很容易:

[package]
name = "foo"
version = "0.1.0"
authors = ["Foo Bar <foo@example.com>"]

[dependencies]
bit-set = "0.4.0" # Add this line
Run Code Online (Sandbox Code Playgroud)

如果你正在使用正式的Rust Playground,你可以自动使用bit-set,因为它是前100个下载的箱子之一或者其中一个的依赖.