nth_element è una funzione che consente di trovare l'ennesimo elemento in un array in ordine di tempo lineare.
La funzione accetta l'estremità sinistra dell'array, un iteratore alla posizione di cui deve essere trovato il valore in ordine ordinato e l'estremità destra dell'array.
Dopo aver applicato la funzione, il valore richiesto si troverà nel punto indicato dall'iteratore, mentre i valori rimanenti acquisiranno un ordine caotico, ma a sinistra dell'ennesimo ci saranno valori non più di esso, e a destra non meno. Cioè, dovrebbe essere chiaro che questa funzione distrugge l'ordine originale degli elementi.
Puoi leggere di più nella documentazione (https://www.cplusplus.com/reference/algorithm/nth_element/).
Esempio:
vettore a = { 4, 0, 3, 9, 2, 1, 8, 5, 6, 7 };
// cerca l'elemento all'indice 4
// prestare attenzione all'ordine degli argomenti
nth_element(a.begin(), a.begin() + 4, a.end());
// a = [#, #, #, #, 4, $, $, $, $, $]
// dove # <= 4 e 4 <= $