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
中使用的最后一个参数不正确。我尝试过inserter
或back_inserter
,但都没有用。
答案 0 :(得分:4)
std::set_intersection(m.begin(), m.end(),
n.begin(), n.end(),
std::inserter(mn, mn.begin()));
请注意,您不能将结果分配给std::set<int>::iterator
,因为返回类型实际上是insert_iterator
。