
ALINK="#ff0000">
equal
PrototypeEqual is an overloaded name; there are actually two equal functions.template <class InputIterator1, class InputIterator2> bool equal(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2); template <class InputIterator1, class InputIterator2, class BinaryPredicate> bool equal(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, BinaryPredicate binary_pred); DescriptionEqual returns true if the two ranges [first1, last1) and [first2, first2 + (last1  first1)) are identical when compared elementbyelement, and otherwise returns false. [1]The first version of equal returns true if and only if for every iterator i in [first1, last1), *i == *(first2 + (i  first1)). The second version of equal returns true if and only if for every iterator i in [first1, last1), binary_pred(*i, *(first2 + (i  first1)) is true. DefinitionDefined in the standard header algorithm, and in the nonstandard backwardcompatibility header algo.h.Requirements on typesFor the first version:
Preconditions
ComplexityLinear. At most last1  first1 comparisons.Exampleint A1[] = { 3, 1, 4, 1, 5, 9, 3 }; int A2[] = { 3, 1, 4, 2, 8, 5, 7 }; const int N = sizeof(A1) / sizeof(int); cout << "Result of comparison: " << equal(A1, A1 + N, A2) << endl; Notes[1] Note that this is very similar to the behavior of mismatch: The only real difference is that while equal will simply return false if the two ranges differ, mismatch returns the first location where they do differ. The expression equal(f1, l1, f2) is precisely equivalent to the expression mismatch(f1, l1, f2).first == l1, and this is in fact how equal could be implemented. See alsomismatch, search, find, find_ifCopyright © 1999 Silicon Graphics, Inc. All Rights Reserved. TrademarkInformation
