如何删除 Rust 中另一个向量中出现的向量元素?

图利哈

我想要不相交的结果。这是我能想到的最好的:

for rem in &remove_vec {
    orig_vec.retain(|i| !i.eq(rem));
}
牧马人

您正在使用错误的工具来完成这项工作。相反,将要删除的项目转换为集合,BTreeSet或者HashSet

use std::{collections::BTreeSet, iter::FromIterator};

fn demo<T>(mut items: Vec<T>, to_remove: Vec<T>) -> Vec<T>
where
    T: std::cmp::Ord,
{
    let to_remove = BTreeSet::from_iter(to_remove);

    items.retain(|e| !to_remove.contains(e));

    items
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从向量中删除元素(如果它们也在另一个向量中)

当另一个元素出现时如何删除?

我如何计算一个ArrayList中的元素在另一个ArrayList中出现的频率?

R:如何从另一个表中出现的表中删除值?

如何从一个向量中删除min元素并添加到另一个向量,而第一个变为空?

如何根据另一个向量中给定的索引分割向量?

如何创建另一个向量的随机向量?

如何与Rust中的向量元素匹配?

如何基于另一个向量中的某个值创建新向量?

在Rust中的if块内创建一个向量。if范围结束后如何使用?

如何从另一个向量的另一个第一个元素减去向量中的第一个元素?

如何将两个Rust向量交织到一个新向量中?

如何在另一个向量R中找到一个向量中元素的索引

在R中:如何基于另一个向量的起点查找向量中特定元素的首次出现

如何根据另一个向量的值删除R中数据框中的列?

循环以删除向量的重复元素并添加另一个向量的对应元素

如何从R中的另一个向量中减去一个向量

如何为另一个向量中的每个元素获取向量中最接近的元素而不重复?

使用不包含在另一个向量中的键从地图中删除元素

如何创建一个向量来指示一个向量的元素与另一个向量中的任何元素之间的匹配?

删除并预留列表中不存在于另一个向量中的向量的元素

如何在Matlab中将向量映射到另一个向量中的最近点?

如何从矩阵中删除与另一个向量中的值匹配的所有行?

如何将向量复制到另一个向量的子向量而不会出现段错误?

Clojure:如何在另一个向量中获取向量的元素

如何从另一个相同的向量中替换一个元素,但另一个向量不会改变?

在 R 中:如何计算一个向量内另一个向量指定的不同元素的平均值?

R 如何计算一个字符串向量在另一个字符串向量中的出现次数

如何通过另一个向量对一个向量的向量进行排序?