Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

includes
PrevUpHomeNext
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);

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.

Definition

Defined in the header file boost/range/algorithm/set_algorithm.hpp

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.
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.

Complexity

Linear. O(N), where N is distance(rng1) + distance(rng2).


PrevUpHomeNext