设置交叉点不起作用

Set intersection not working

本文关键字:不起作用 交叉点 设置      更新时间:2023-10-16

我正试图使用以下代码使两个集合相交,如果结果与空集不同,我想将我的第一个集合插入一组集合中。

    std::set<int> set1,set2;
    std::set<set<int> > result;
    std::set<int> intersection;
             set_intersection(set1.begin(),set1.end(),set2.begin(),set2.end(),std::back_inserter(intersection));
                if(!intersection.empty()) result.insert(set1);

然而,我得到了以下错误:"class std::set"没有名为"push_back"的成员。问题出在哪里?提前谢谢。

std::back_inserter使用std::back_inserter_iterator,它在容器上调用push_back()

当输出为std::set时,请使用std::inserter

 std::set<int> set1,set2;
 std::set<int> intersection;
 std::set_intersection(set1.begin(),set1.end(),set2.begin(),set2.end(),
                       std::inserter(intersection, intersection.begin()));