← Patterns

Sort a range of elements

1234567891011121314#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>{}); }

This pattern is licensed under the CC0 Public Domain Dedication.

Requires c++11 or newer.

Intent

Sort elements in a range into a given order.

Description

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.

Contributors

Last Updated

09 December 2017

Source

Fork this pattern on GitHub

Share

Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!

Check out: eBank.nz (Art Generator) | Netwrck.com (AI Tools) | Text-Generator.io (AI API) | BitBank.nz (Crypto AI) | ReadingTime (Kids Reading) | RewordGame | BigMultiplayerChess | WebFiddle | How.nz | Helix AI Assistant