我有一个hashmap: HashMap<SomeKey, SomeValue>
,我想使用hashmap
并获取其所有值作为矢量。
我现在的方式是
let v: Vec<SomeValue> = hashmap.values().cloned().collect();
cloned
复制每个值,但是此构造不占用哈希图。我可以使用地图。
有什么方法可以获取值而不复制它们?
将整个HashMap
转换为迭代器并丢弃键:
use std::collections::HashMap;
fn only_values<K, V>(map: HashMap<K, V>) -> impl Iterator<Item = V> {
map.into_iter().map(|(_k, v)| v)
}
然后,您可以使用迭代器进行任何操作,包括将其收集到中Vec<_>
。
也可以看看:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句