rsut vec f64去重
时间: 2024-05-20 07:07:56 浏览: 49
Rust中的`Vec<f64>`是一个动态数组,可以存储一系列的64位浮点数。如果你想要对一个`Vec<f64>`进行去重操作,可以使用`HashSet`来实现。`HashSet`是一个集合数据结构,它可以确保其中的元素是唯一的。
首先,你需要在代码中引入`HashSet`的模块:
```rust
use std::collections::HashSet;
```
然后,你可以使用`HashSet`来对`Vec<f64>`进行去重操作。下面是一个示例代码:
```rust
fn main() {
let mut numbers = vec![1.0, 2.0, 3.0, 2.0, 4.0, 1.0, 5.0
let unique_numbers: Vec<f64> = numbers.into_iter().collect::<HashSet<_>>().into_iter().collect();
println!("{:?}", unique_numbers);
}
```
在上面的代码中,我们首先将`Vec<f64>`转换为迭代器,然后使用`collect`方法将其转换为一个`HashSet<_>`,这样就会自动去除重复的元素。最后,我们再次将其转换为`Vec<f64>`类型,并打印输出结果。
相关问题
c++ vector去重
可以使用STL中的unique()函数来进行vector去重操作。
unique()函数的作用是将相邻的重复元素放到vector的尾部,并返回一个新的迭代器指向去重后的最后一个元素的下一个位置。最后再使用erase()函数将重复元素删除即可完成去重操作。
示例代码如下:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> vec = {1, 2, 3, 2, 4, 3, 5};
sort(vec.begin(), vec.end()); //先排序
auto it = unique(vec.begin(), vec.end()); //去重
vec.erase(it, vec.end()); //删除重复元素
for (int i : vec) {
cout << i << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
1 2 3 4 5
```
unique erase去重
unique erase去重是一种常见的操作,用于去除容器中的重复元素。这个操作通常是与STL中的vector、list、set、map等容器一起使用。
具体的实现方式是,先使用STL中的unique函数,将相邻的重复元素压缩到容器的末尾,然后再使用erase函数将重复的元素从容器中删除。
以下是一个vector去重的示例代码:
```c++
std::vector<int> vec = {1, 2, 3, 3, 4, 4, 5};
vec.resize(std::unique(vec.begin(), vec.end()) - vec.begin());
```
这个代码段中,unique函数将重复的元素压缩到容器的末尾,而resize函数将容器的大小缩减到不包含重复元素的大小。
阅读全文