计算两个集合之间的交集时出现set_intersection错误

时间:2018-10-19 06:18:02

标签: c++ stl

std::set<int> m{1,2, 4};
std::set<int> n{2,3, 4};
std::set<int> mn;
std::set<int>::iterator it;
it=set_intersection(m.begin(), m.end(),
                    n.begin(), n, end()
                    mn.begin());   //This part is not correct
for(int i : mn) cout<< i <<" ";

似乎set_intersection中使用的最后一个参数不正确。我尝试过inserterback_inserter,但都没有用。

1 个答案:

答案 0 :(得分:4)

std::set_intersection(m.begin(), m.end(),
                      n.begin(), n.end(),
                      std::inserter(mn, mn.begin()));

请注意,您不能将结果分配给std::set<int>::iterator,因为返回类型实际上是insert_iterator