Ошибка set_intersection при вычислении пересечения между двумя наборами - PullRequest
0 голосов
/ 19 октября 2018
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, но ни один не работал.

1 Ответ

0 голосов
/ 19 октября 2018
std::set_intersection(m.begin(), m.end(),
                      n.begin(), n.end(),
                      std::inserter(mn, mn.begin()));

Обратите внимание, что вы не можете присвоить результат std::set<int>::iterator, потому что тип возвращаемого значения на самом деле insert_iterator.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...