在STL中检查空的交叉点

Check for empty intersection in STL

本文关键字:交叉点 检查 STL      更新时间:2023-10-16

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

注释:std::set表示有序集,它们的类型相同等。

只是自己编码有什么问题?

bool empty_intersection(const set<int>& x, const set<int>& y)
{
    set<int>::const_iterator i = x.begin();
    set<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;
}

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