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

equal
PrevUpHomeNext
Prototype

template<
    class SinglePassRange1,
    class SinglePassRange2
>
bool equal(const SinglePassRange1& rng1,
           const SinglePassRange2& rng2);

template<
    class SinglePassRange1,
    class SinglePassRange2,
    class BinaryPredicate
>
bool equal(const SinglePassRange1& rng1,
           const SinglePassRange2& rng2,
           BinaryPredicate         pred);

Description

equal returns true if distance(rng1) is equal to the distance(rng2) and for each element x in rng1, the corresponding element y in rng2 is equal. Otherwise false is returned.

In this range version of equal it is perfectly acceptable to pass in two ranges of unequal lengths.

Elements are considered equal in the non-predicate version if operator== returns true. Elements are considered equal in the predicate version if pred(x,y) is true.

Definition

Defined in the header file boost/range/algorithm/equal.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's value type is a model of the EqualityComparableConcept.
  • SinglePassRange2's value type is a model of the EqualityComparableConcept.
  • SinglePassRange1's value type can be compared for equality with SinglePassRange2's value type.

For the predicate versions:

  • SinglePassRange1 is a model of the Single Pass Range Concept.
  • SinglePassRange2 is a model of the Single Pass Range Concept.
  • BinaryPredicate is a model of the BinaryPredicateConcept.
  • SinglePassRange1's value type is convertible to BinaryPredicate's first argument type.
  • SinglePassRange2's value type is convertible to BinaryPredicate's second argument type.
Complexity

Linear. At most min(distance(rng1), distance(rng2)) comparisons.


PrevUpHomeNext