template<
class SinglePassRange1,
class SinglePassRange2,
class OutputIterator
>
OutputIterator set_intersection(const SinglePassRange1& rng1,
const SinglePassRange2& rng2,
OutputIterator out);
template<
class SinglePassRange1,
class SinglePassRange2,
class OutputIterator,
class BinaryPredicate
>
OutputIterator set_intersection(const SinglePassRange1& rng1,
const SinglePassRange2& rng2,
OutputIterator out,
BinaryPredicate pred);
set_intersection строит сортированный диапазон, который представляет собой пересечение сортированных диапазонов rng1 и rng2. Возвратное значение - конец диапазона выхода.
Отношения заказа определяются с помощью оператора< в непрофильных версиях, а также путем оценки pred в основных версиях.
Определено в файле заголовка boost/range/algorithm/set_algorithm.hpp
Для непрофильных версий:
SinglePassRange1 является моделью Single Pass Range Concept.SinglePassRange2 является моделью Single Pass Range Concept.OutputIterator является моделью OutputIteratorConcept.SinglePassRange1 и SinglePassRange2 имеют один и тот же тип значения.SinglePassRange1 тип значений является моделью LessThanComparableConcept.SinglePassRange2 тип значений является моделью LessThanComparableConcept.- Заказ объектов типа
SinglePassRange1 имеет тип значений ограниченный слабый заказ, как определено в LessThanComparableConcept. - Заказ объектов типа
SinglePassRange2 имеет тип значений ограниченный слабый заказ, как определено в LessThanComparableConcept.
Для основных версий:
SinglePassRange1 является моделью Single Pass Range Concept.SinglePassRange2 является моделью Single Pass Range Concept.OutputIterator является моделью OutputIteratorConcept.SinglePassRange1 и SinglePassRange2 имеют один и тот же тип значения.BinaryPredicate является моделью StrictWeakOrderingConcept.SinglePassRange1 тип значения преобразуется в BinaryPredicate первый тип аргумента.SinglePassRange2 тип значения преобразуется в BinaryPredicate второй тип аргументов.
Для непрофильных версий:
rng1 и rng2 сортируются в порядке восхождения согласно оператор<.
Для основных версий:
rng1 и rng2 сортируются в порядке восхождения согласно pred.
Линейный. О(N), где N расстояние(rng1) + расстояние(rng2).