Funkcija std::sort se nahaja v knjižnici algorithm. Z njeno pomočjo lahko sortiramo polje elementov v naraščajočem vrstnem redu ali pa napišemo svojo funkcijo in določimo svoja pravila sortiranja za kompleksne tipe.
Za vključitev te funkcije potrebujemo knjižnico oz ukaz
#include <algorithm>
Funkcija je prav tako v imenskem prostoru (namespace) std::
Zato njena sintaksa v kodi lahko zgleda nekako tako:
std::sort(&I[0],&I[9]);
std::sort(C,C+7);
std::sort(&P[0],&P[3],PREDMET_SORT);
std:: seveda ni potreben, če smo ga že najavili
(using namespace std)
Spremenljivke I,C in P so polja različnih tipov in kot ste opazili, se vsaka vrstica razlikuje v sintaksi.
V bistvu pa sta prvi dve identični, le tretja je drugačna, saj sprejme funkcijo (kazalec na njo) kot 3. parameter.
Funkcija sort potrebuje kot prvi parameter pomnilniško lokacijo 1. elementa v polju, kot drugi parameter pa pomnilniško lokacijo zadnjega elementa v polju.
Tukaj igra vlogo referenčni operator &, kateri vrne pomnilniško lokacijo:
&I[0] //vrne pomnilniško lokacijo 1. elementa v polju I
Če pa imamo malce poglobljeno znanje o C-ju, pa vemo, da lahko polja predstavimo s kazalci.
*(I+9) //vrne vrednost na 9 mestu v polju I
(I+9) // vrne pomnilniško lokacijo na 9 mestu v polju I
Razliko naredi dereferenčni operator *, kateri iz pomnilniške lokacije pridobi vrednost.
Tako lahko preprosto dobimo lokacijo prvega in zadnjega elementa v polju na sledeč način:
std::sort(I,I+velikost_polja); //I+0 je enako I, zato kar pišemo I
Ko se funkcija zaključi so elementi sortirani po naraščajočem vrstnem redu.