Справочник по C/C++
set_intersection()

template <class InIter1, class InIter2, class OutIter>
	OutIter set_intersection(InIter start1, InIter1 end1,
		InIter2 starts, InIter2 end2, OutIter result);
template <class InIter1, class InIter2, class OutIter, class Comp>
	OutIter set_intersection(InIter start1, InIter1 end1,
		InIter2 starts, InIter2 end2, OutIter result, Comp cmpfn);

Описание

Создает последовательность, которая содержит пересечение двух упорядоченных множеств

Алгоритм set_intersection() создает последовательность, которая содержит пересечение двух упорядоченных множеств, определяемых параметрами start1, end1 и starts, ends, т.е. создаваемая последовательность будет включать только те элементы, которые принадлежат обоим множествам. Результат упорядочивается и помещается в последовательность, адресуемую параметром result. Алгоритм возвращает итератор, указывающий на конец результата.

Вторая форма позволяет задать функцию сравнения, которая определяет, когда один элемент меньше другого,