nth_element là hàm cho phép bạn tìm phần tử thứ n trong mảng theo thứ tự đã sắp xếp theo thời gian tuyến tính.
Hàm lấy phần cuối bên trái của mảng, một trình vòng lặp đến vị trí có giá trị theo thứ tự được sắp xếp sẽ được tìm thấy và phần cuối bên phải của mảng.
Sau khi áp dụng hàm, giá trị cần thiết sẽ được đặt tại vị trí được chỉ định bởi trình vòng lặp, trong khi các giá trị còn lại sẽ có thứ tự hỗn loạn, nhưng ở bên trái của thứ n sẽ có các giá trị không nhiều hơn nó và bên phải không ít. Nghĩa là, nên hiểu rằng hàm này phá bỏ thứ tự ban đầu của các phần tử.
Bạn có thể đọc thêm trong tài liệu (https://www.cplusplus.com/reference/algorithm/nth_element/).
Ví dụ:
vectơ a = { 4, 0, 3, 9, 2, 1, 8, 5, 6, 7 };
// tìm phần tử ở chỉ số 4
// chú ý đến thứ tự của các đối số
nth_element(a.begin(), a.begin() + 4, a.end());
// a = [#, #, #, #, 4, $, $, $, $, $]
// trong đó # <= 4 và 4 <= $