如何检查两个std::set
s 的空交集?我可以使用set_intersection
,但这太慢了,我只需要bool
回答。
备注:std::set
表示有序集合,它们属于同一类型等。
自己编码有什么问题吗?
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;
}
反正是这样的。完全未经测试的代码。