【发布时间】:2018-01-11 01:48:47
【问题描述】:
我有两个容器std::set 和std::vector,我的任务是从std::vector 返回存在于std::set 中的元素。实现它的最有效方法是什么?
简单的解决方案:
遍历vector的元素并在每个元素上调用set.find,如果没有找到则调用vector.erase。
【问题讨论】:
-
向量是排序的还是未排序的?
-
听起来你可能想要
std::set_union之类的东西(但它需要对向量进行排序)。 -
抱歉不一致。暂时(并且它可能保持不变)向量是未排序的并且很小。不过,Set 有更多的元素。