从另一个 C++ 中删除 1 个列表中出现的所有元素

זאב*_*כהן 4 c++ list

假设我有两个列表,l1 和 l2。我想执行 l1 - l2,它返回 l1,同时删除也是 l2 元素的所有元素。

我可以想到一种简单的循环方法来做到这一点,但这确实效率很低。在 C++ 中执行此操作的有效方法是什么?

例如,如果我有 l1 = [1,2,6,8] 和 l2 = [2,8],则 l1 - l2 应该返回 [1,6]

谢谢你们

Kko*_*kov 5

顺序重要吗?该列表会包含重复项吗?

如果没有,我建议做一个set_difference

请注意,如果确实有重复项,我认为 set_difference 只会删除您要删除的重复元素的第一次出现。