相关疑难解决方法(0)

将哈希图的值收集到向量中

我是Rust的新手,在文档中找不到将hashmap的值收集到向量中的方法。

假设我有一个哈希图:

score_table: HashMap<Id, Score>

我想所有的Score成Vec

all_scores: Vec<Score>

我很想使用,values但由于值不是vec,所以它不起作用:

all_scores = score_table.values()

我知道可以Values实现该ExactSizeIterator特征,但是我不知道如何将迭代器的所有值收集到向量中,而无需手动编写for循环并将向量中的值一个接一个地推入。

[编辑1]

我还尝试着use std::iter::FromIterator;降落到类似:

all_scores = Vec::from_iter(score_table.values());
Run Code Online (Sandbox Code Playgroud)
expected type `std::vec::Vec<Score>`
   found type `std::vec::Vec<&Score>`
Run Code Online (Sandbox Code Playgroud)

[编辑2]

由于这个问题,我将其更改为:

all_scores = Vec::from_iter(score_table.values().cloned());
Run Code Online (Sandbox Code Playgroud)

并且不会对产生错误cargo check。

这是一个好方法吗?

hashmap rust

3
推荐指数
3
解决办法
375
查看次数

标签 统计

hashmap ×1

rust ×1