Мне нужно найти пересечения двух multiset, каждый из которых находится внутри vector.
Вот часть кода, где я это делал:
unordered_multiset <char> intersect; //множество для результата пересечения
unordered_multiset <char> first;
unordered_multiset <char> second;
for (int i = 0; i < Sentence.size(); i++) { //Sentence - это vector <unordered_multiset<char>>
for (int j = 0; j < Dictionary.size(); j++) { //Dictionary - это тоже vector <unordered_multiset<char>>
first = Sentence[i];
second = Dictionary[j];
set_intersection(first.begin(), first.end(), second.begin(), second.end(), intersect.begin());
Программа не компилировалась и выдавала ошибку: C3892 _UDest: невозможно присваивать значения переменной, которая объявлена как константа.
Я заменил в
set_intersection(first.begin(), first.end(), second.begin(), second.end(), intersect.begin());
intersect.begin()
на
inserter(intersect, intersect.begin())
Программа компилируется, но останавливается на этой же сточке и пишет: Недопустимый параметр был передан функции, для которой недопустимые параметры вызывают неустранимую ошибку.
Как я понял, пятым параметром в set_intersection должен быть OutPutIterator, но видимо .begin() возвращает InPutIterator.
В итоге, облазив все сайты и форумы я так и не понял в чем ошибка.