Попробуйте set_intersection(in1.begin(),in1.end(), in2.begin(), in2.end(), <b>inserter(out, out.begin()) </b> );
Это потому, что set_intersection хочет выполнить запись в выходной итератор, что приводит к увеличению размера выходного контейнера.Однако это невозможно сделать только с помощью одного итератора (его можно использовать для перезаписи существующих элементов, но не для увеличения их размера)
Редактировать: исправлена опечаткаИспользуйте вкладыш для добавления в набор.Back_inserter работает только для векторов и т. Д.
Редактировать 2: исправлена еще одна опечатка.STL inserter
требует второго аргумента, который является итератором подсказки для вероятной позиции вставки.Спасибо chepseskaf.