小编Rog*_*ger的帖子

如何使用带前缀键搜索的排序键值映射?

我尝试使用Rust集合(如BTreeMap)来存储键值对以用作排序列表,但我发现它只与精确键匹配.例如,在电话簿案例中,我可以找到具有精确键"David"的项目,但不能找到以"Dav"开头的项目:

use std::collections::BTreeMap;

fn main() {
    let mut map = BTreeMap::new();
    map.insert("Daniel", "798-1364");

    // FOUND WITH EXACT MATCH ONLY
    //  like map.get(&"Daniel"), Not Found Here
    match map.get(&"Dan") {
        Some(&number) => println!("Found: {}", number),
        _ => println!("Not Found."),
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以使用诸如BTreeMap?之类的集合对字符串前缀进行部分匹配吗?

此外,如果我的钥匙是i64s,我可以找到一系列的项目,例如当钥匙大于1000时?我知道如何遍历所有项目,但我想迭代所找到的项目范围.

我可以通过索引访问项目,手动进行二进制搜索吗?

rust

1
推荐指数
1
解决办法
1284
查看次数

标签 统计

rust ×1