Avatar ·

如何将向量转换为HashSet在Rust中:完整指南

大家好!我最近开始学习Rust,遇到了一个问题。我有一个包含数字的vector,我想从中得到一个HashSet,以便去除重复项并快速检查元素是否存在。在其他语言中,例如Python,这可以用一行代码完成:`set(my_list)`。但在Rust中,我不知道如何正确实现。 这是我的代码: ```rust let numbers = vec![1, 2, 3, 2, 1, 4, 5]; // 想从这个vector得到HashSet let unique_numbers: HashSet = numbers.???; // 这里该写什么? ``` 我尝试过使用`numbers.into_iter().collect()`,但编译器报错说无法推断类型。我尝试显式指定`HashSet::from_iter(numbers)`,但也没成功——它说`FromIterator` trait未实现。我还听说过`drain()`方法,但不确定是否是我需要的。 请告诉我如何正确高效地从vector创建HashSet?是否需要导入额外的traits?如果vector非常大,该怎么办?