This question already has answers here:
Vec::dedup does not work — how do I deduplicate a vector of strings?
(2个答案)
2年前关闭。
我需要从
例如:
预期:
(playground)
如何从合并的向量中删除重复项?
(2个答案)
2年前关闭。
我需要从
Vec<char>
过滤出重复项,这是合并两个vectors
的结果。我正在使用dedup
方法,但是它只会从原点部分和邻域元素中删除重复项。例如:
fn main() {
let mut a = "abccdddd".chars().collect::<Vec<char>>();
let mut b = "dadddefacd".chars().collect::<Vec<char>>();
a.append(&mut b);
a.dedup();
println!("{:?}", a)
}
预期:
['a', 'b', 'c', 'd', 'e', 'f']
得到了:['a', 'b', 'c', 'd', 'a', 'd', 'e', 'f', 'a', 'c', 'd']
(playground)
如何从合并的向量中删除重复项?
最佳答案
引用 Vec::dedup
的文档
您必须先对向量排序,然后对其进行消散。
fn main() {
let mut a = "abccdddd".chars().collect::<Vec<char>>();
let mut b = "addddefacd".chars().collect::<Vec<char>>();
a.append(&mut b);
a.sort();
a.dedup();
println!("{:?}", a)
}
关于rust - Vec::dedup不起作用-如何从字符向量中过滤重复项? [复制],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53318918/
10-11 22:10