检查STL中的空交叉点

时间:2012-10-17 18:04:32

标签: c++ stl set

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

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

1 个答案:

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

无论如何都是这样的。完全未经测试的代码。