9

如何检查两个std::sets 的空交集?我可以使用set_intersection,但这太慢了,我只需要bool回答。

备注:std::set表示有序集合,它们属于同一类型等。

4

1 回答 1

11

自己编码有什么问题吗?

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;
}

反正是这样的。完全未经测试的代码。

于 2012-10-17T18:07:59.947 回答