Equal

bool equal (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2) Function
bool equal (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, BinaryPredicate binary_pred); Function

template 
bool equal(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2);

template 
bool equal(InputIterator1 first1, InputIterator1 last1,
           InputIterator2 first2, BinaryPredicate binary_pred);

equal returns true if for every iterator i in the range [first1, last1) the following corresponding conditions hold: *i == *(first2 + (i - first1)), binary_pred(*i, *(first2 + (i - first1))) == true. Otherwise, it returns false. At most last1 - first1 applications of the corresponding predicate are done.