| [section:includes includes] |
| |
| [heading Prototype] |
| |
| `` |
| template<class SinglePassRange1, class SinglePassRange2> |
| bool includes(const SinglePassRange1& rng1, const SinglePassRange2& rng2); |
| |
| template< |
| class SinglePassRange1, |
| class SinglePassRange2, |
| class BinaryPredicate |
| > |
| bool includes(const SinglePassRange1& rng1, const SinglePassRange2& rng2, |
| BinaryPredicate pred); |
| `` |
| |
| [heading Description] |
| |
| `includes` returns `true` if and only if, for every element in `rng2`, an equivalent element is also present in `rng1`. |
| The ordering relationship is determined by using `operator<` in the non-predicate versions, and by evaluating `pred` in the predicate versions. |
| |
| [heading Definition] |
| |
| Defined in the header file `boost/range/algorithm/set_algorithm.hpp` |
| |
| [heading Requirements] |
| |
| [*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. |
| * `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`. |
| * The ordering of objects of type `SinglePassRange1`'s value type is a [*/strict weak ordering/], as defined in the `LessThanComparableConcept` requirements. |
| * The ordering of objects of type `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. |
| * `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. |
| |
| [heading Precondition:] |
| |
| [*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`. |
| |
| [heading Complexity] |
| |
| Linear. `O(N)`, where `N` is `distance(rng1) + distance(rng2)`. |
| |
| [endsect] |
| |
| |