gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 11:40:43 25 4
gpt4 key购买 nike

我想要脱节的结果。这是我能想到的最好的方法:

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

最佳答案

您为该工作使用了错误的工具。而是将要删除的项目转换为BTreeSetHashSet的集合:

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
}

关于rust - 如何删除Rust中另一个矢量中出现的矢量元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64019451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com