Standard C++ Library Reference ISO/IEC (VERSION3)

replace_copy_if
template<class InIt, class OutIt, class Pr, class Ty>
OutIt replace_copy_if(InIt first, InIt last, OutIt dest,
Pr pred, const Ty& val);
The template function executes the statement:
if (pred(*(first + N)))
*(dest + N) = val;
else
*(dest + N) = *(first + N)
once for each N in the range [0, last - first).
If dest and first designate regions of storage, the range [dest, dest + (last -
first)) must not overlap the range [first, last). The function returns the iterator value
that designates the end of the resulting sequence.
replace_if
template<class FwdIt, class Pr, class Ty>
void replace_if(FwdIt first, FwdIt last,
Pr pred, const Ty& val);
The template function executes the statement:
if (pred(*(first + N)))
*(first + N) = val;
once for each N in the range [0, last - first).
reverse
template<class BidIt>
void reverse(BidIt first, BidIt last);
The template function evaluates swap(*(first + N), *(last - 1 - N) once for
each N in the range [0, (last - first) / 2). Thus, the function reverses the order of
elements in the sequence.
reverse_copy
template<class BidIt, class OutIt>
OutIt reverse_copy(BidIt first, BidIt last, OutIt dest);