C++: Sort a Range of Elements

Bjarne-stroustrup
 


On line 8, we create a std::array of ints that we wish to sort.

On line 10, we call the standard alrogithm std::sort, which sorts the range of elements between the given pair of iterators. We use std::begin and std::end to get the begin and end iterators for the array.

By default, std::sort uses operator< to sort the range, which arranges the elements in ascending order. It can, however, be passed a comparison function object to use when comparing elements. On lines 12–13, we pass an object of type std::greater<int>, which is a comparison function object that uses operator>. Accordingly, this sorts the array in descending order.

#include <array>
#include <algorithm>
#include <iterator>
#include <functional>

int main()
{
	std::array<int, 5> arr = {3, 4, 1, 5, 2};

	std::sort(std::begin(arr), std::end(arr));

	std::sort(std::begin(arr), std::end(arr),
	          std::greater<int>{});
}