These algorithms require input iterators for their first two arguments.
The equal
and mismatch
algorithms also take an additional input iterator that denotes the start of a second range. They also provide two overloaded versions. The first version uses equality (==
) operator of the underlying type to compare elements; the second version compares elements using the user-supplied unaryPred
or binaryPred
.
for_each(beg, end, unaryOp)
Applies the callable object (§ 10.3.2, p. 388) unaryOp
to each element in its input range. The return value from unaryOp
(if any) is ignored. If the iterators allow writing to elements through the dereference operator, then unaryOp
may modify the elements.
mismatch(beg1, end1, beg2)
mismatch(beg1, end1, beg2, binaryPred)
Compares the elements in two sequences. Returns a pair
(§ 11.2.3, p. 426) of iterators denoting the first elements in each sequence that do not match. If all the elements match, then the pair
returned is end1
, and an iterator into beg2
offset by the size of the first sequence.
equal(beg1, end1, beg2)
equal(beg1, end1, beg2, binaryPred)
Determines whether two sequences are equal. Returns true
if each element in the input range equals the corresponding element in the sequence that begins at beg2
.