...

/

Leverage Existing Algorithms: Gather

Leverage Existing Algorithms: Gather

Learn to give leverage to existing algorithms with gather.

We'll cover the following...

gather() is an example of an algorithm that leverages existing algorithms. The gather() algorithm takes a pair of container iterators and moves the elements that satisfy a predicate toward a pivot position within the sequence, returning a pair of iterators that contains the elements that satisfy the predicate.

For example, we could use a gather algorithm to sort all the even numbers to the mid-point of a vector:

vector<int> vint{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
gather(vint.begin(), vint.end(), mid(vint), is_even);
for(const auto& el : vint) cout << el;

Our output is:

1302468579

Note: The even numbers are all in the middle of the output. ...