HideME Asked:2020-11-04 23:58:59 +0000 UTC2020-11-04 23:58:59 +0000 UTC 2020-11-04 23:58:59 +0000 UTC 如何从第二个向量中包含的 vector<int> 元素中删除? 772 我们有一个向量vector<int> first,我们也有第二个向量vector<int> second。 有必要从第一个向量中删除第二个向量中包含的所有元素。我知道可以用2个周期在额头上解决它,但是如果您有任何想法,请提供帮助。 如何才能做到这一点? c++ 1 个回答 Voted Best Answer AnT stands with Russia 2020-11-05T00:42:00Z2020-11-05T00:42:00Z 如果向量是无序的,那么只有“在额头上”,即 你的“两个周期”。如果允许使用额外的内存,那么首先将第二个向量输入到集合 ( std::set, std::unordered_set) 的某个有效表示中是有意义的。 如果仅对第二个向量进行排序,则可以通过二分搜索 ( std::binary_search)有效地检查其中是否存在元素 如果两个向量都是有序的,那么通过向量的同步传递(类型的算法)可以更有效地解决问题std::set_difference。
如果向量是无序的,那么只有“在额头上”,即 你的“两个周期”。如果允许使用额外的内存,那么首先将第二个向量输入到集合 (
std::set,std::unordered_set) 的某个有效表示中是有意义的。如果仅对第二个向量进行排序,则可以通过二分搜索 (
std::binary_search)有效地检查其中是否存在元素如果两个向量都是有序的,那么通过向量的同步传递(类型的算法)可以更有效地解决问题
std::set_difference。