Home | Libraries | People | FAQ | More |
template< class SinglePassRange1, class SinglePassRange2, class OutputIterator > OutputIterator set_symmetric_difference(const SinglePassRange1& rng1, const SinglePassRange2& rng2, OutputIterator out); template< class SinglePassRange1, class SinglePassRange2, class OutputIterator, class BinaryPredicate > OutputIterator set_symmetric_difference(const SinglePassRange1& rng1, const SinglePassRange2& rng2, OutputIterator out, BinaryPredicate pred);
set_symmetric_difference
constructs a sorted range that is the set symmetric difference of the
sorted ranges rng1
and
rng2
. The return value
is the end of the output range.
The ordering relationship is determined by using operator<
in the non-predicate versions, and
by evaluating pred
in
the predicate versions.
Defined in the header file boost/range/algorithm/set_algorithm.hpp
For the non-predicate versions:
SinglePassRange1
is a model of the Single
Pass Range Concept.
SinglePassRange2
is a model of the Single
Pass Range Concept.
OutputIterator
is
a model of the OutputIteratorConcept
.
SinglePassRange1
and SinglePassRange2
have the same value type.
SinglePassRange1
's
value type is a model of the LessThanComparableConcept
.
SinglePassRange2
's
value type is a model of the LessThanComparableConcept
.
SinglePassRange1
's
value type is a strict weak ordering,
as defined in the LessThanComparableConcept
requirements.
SinglePassRange2
's
value type is a strict weak ordering,
as defined in the LessThanComparableConcept
requirements.
For the predicate versions:
SinglePassRange1
is a model of the Single
Pass Range Concept.
SinglePassRange2
is a model of the Single
Pass Range Concept.
OutputIterator
is
a model of the OutputIteratorConcept
.
SinglePassRange1
and SinglePassRange2
have the same value type.
BinaryPredicate
is
a model of the StrictWeakOrderingConcept
.
SinglePassRange1
's
value type is convertible to BinaryPredicate
's
first argument type.
SinglePassRange2
's
value type is convertible to BinaryPredicate
's
second argument types.
For the non-predicate versions:
rng1
and rng2
are sorted in ascending order
according to operator<
.
For the predicate versions:
rng1
and rng2
are sorted in ascending order
according to pred
.
Linear. O(N)
,
where N
is distance(rng1) + distance(rng2)
.