【发布时间】:2014-10-04 22:58:04
【问题描述】:
This question 建议使用std::set_intersection 来查找两个数组的交集。使用std::find 不是也可以吗?
int a[5] = {1, 2, 3, 4, 5};
int b[5] = {3, 4, 5, 6, 7};
for (int i=0; i<5; i++)
{
if (std::find(b, b+5, a[i])!=b+5)
std::cout << a[i] << std::endl;
}
std::set_intersection 基本上做同样的事情吗?或者它可能使用更有效的算法?如果std::find 花费 O(n) 时间,我认为上面的复杂性是 O(n^2)。
【问题讨论】:
标签: c++ stl intersection