Algorithms work in overwrite mode rather than in insert mode. Thus, the caller must ensure that
destination ranges have enough elements. You can use special insert iterators (see Section 9.4.2,
page 454) to switch from overwrite to insert mode.
To increase their flexibility and power, several algorithms allow the user to pass user-defined
operations, which they call internally. These operations might be ordinary functions or function
objects. If these functions return a Boolean value, they are called predicates. You can use predicates
for the following tasks: