我尝试使用以下代码创建两个集合的交集,如果结果与空集合不同,我想将我的第一个集合插入到一组集合中。
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);
但是我收到以下错误:&#39; class std :: set&#39;没有名为&#39; push_back&#39;的成员。问题是什么? 提前谢谢。
答案 0 :(得分:2)
std::back_inserter
使用std::back_inserter_iterator
,在容器上调用push_back()
。
输出为std::inserter
时使用std::set
。
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()));