相关疑难解决方法(0)

如何创建HashMap文字?

如何在Rust中创建HashMap文字?在Python中,我可以这样做:

hashmap = {
   'element0': {
       'name': 'My New Element',
       'childs': {
           'child0': {
               'name': 'Child For Element 0',
               'childs': {
                   ...
               }
           }
       }
   },
   ...
}
Run Code Online (Sandbox Code Playgroud)

在Go中这样:

type Node struct {
    name string
    childs map[string]Node
}

hashmap := map[string]Node {
    "element0": Node{
        "My New Element",
        map[string]Node {
            'child0': Node{
                "Child For Element 0",
                map[string]Node {}
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

hashmap rust

55
推荐指数
6
解决办法
1万
查看次数

如何简洁地填充2D HashMap?

有没有一种简单的方法来填充二维HashMap?在C++中,我可以做以下几点:

std::unordered_map<int,std::unordered_map<int,int>> 2dmap;
//...
2dmap[0][0] = 0;
2dmap[0][1] = 1;
//...
Run Code Online (Sandbox Code Playgroud)

在我的Rust项目中,我试图填写类似的地图:

let mut map: HashMap<i32, HashMap<i32, i32>> = HashMap::new();
//...fill the hash map here.
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一方法是构建每个子地图,然后将它们移动到超级地图中,如下所示:

let mut sub1: HashMap<i32, i32> = HashMap::new();
sub1.insert(0, 0);
sub1.insert(1, 1);
let mut map: HashMap<i32, HashMap<i32, i32>>::new();
map.insert(0, sub1);
Run Code Online (Sandbox Code Playgroud)

有没有更简洁的方法来做到这一点?

上面的代码是我的实际用例的简化,它使用枚举作为索引HashMap:

enum Example {
    Variant1,
    Variant2,
    //...
}
Run Code Online (Sandbox Code Playgroud)

没有变体具有价值.我正在使用此语法进行查询HashMap:

let value = map[Example::Variant1][Example::Variant2];
Run Code Online (Sandbox Code Playgroud)

hashmap rust

7
推荐指数
2
解决办法
644
查看次数

标签 统计

hashmap ×2

rust ×2