std::includes
From Cppreference
Defined in header <algorithm>
|
||
template< class InputIterator1, class InputIterator2 >
bool includes( InputIterator1 first1, InputIterator1 last1, |
(1) | |
template< class InputIterator1, class InputIterator2 >
bool includes( InputIterator1 first1, InputIterator1 last1, |
(2) | |
Returns true if every element from the sorted range [first2, last2) is found within the sorted range [first, last). Also returns true if [first2, last2) is empty. The first version expects both ranges to be sorted with operator<, the second version expects them to be sorted with the given comparison function comp.
Contents |
[edit] Parameters
first1, last1 | - | the range of elements to examine | |||||||||
first2, last2 | - | the range of elements to search for | |||||||||
comp | - | comparison function which returns true if the first argument is less than the second. The signature of the comparison function should be equivalent to the following:
The signature does not need to have const &, but the function must not modify the objects passed to it. |
[edit] Return value
true if every element from [first2, last2) is a member of [first, last).
[edit] Complexity
At most 2·(N1+N2-1) comparisons, where N1 = std::distance(first1, last1) and N2 = std::distance(first2, last2).
[edit] Equivalent function
First version |
---|
template<class InputIterator1, class InputIterator2> bool includes(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2) { for (; first2 != last2; ++first1) { if (first1 == last1 || *first2 < *first1) return false; if ( !(*first1 < *first2) ) ++first2; } return true; } |
Second version |
template<class InputIterator1, class InputIterator2> bool includes(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, Compare comp) { for (; first2 != last2; ++first1) { if (first1 == last1 || comp(*first2, *first1)) return false; if (!comp(*first1, *first2)) ++first2; } return true; } |
[edit] Example
This section is incomplete |
[edit] See also
|
computes the difference between two sets (function template) |