如何检查两个std::set
的空交集?我可以使用set_intersection
,但这不必要地慢,我只需要bool
回答。
备注:std::set
表示有序集,它们属于同一类型等。
答案 0 :(得分:9)
自己编码有什么不对吗?
bool empty_intersection(const set<int>& x, const set<int>& y)
{
std<int>::const_iterator i = x.begin();
std<int>::const_iterator j = y.begin();
while (i != x.end() && j != y.end())
{
if (*i == *j)
return false;
else if (*i < *j)
++i;
else
++j;
}
return true;
}
无论如何都是这样的。完全未经测试的代码。