nth_element는 선형 시간으로 정렬된 순서로 배열에서 n번째 요소를 찾을 수 있게 해주는 함수입니다.
이 함수는 배열의 왼쪽 끝, 정렬된 순서로 값을 찾을 위치의 반복자, 배열의 오른쪽 끝을 가져옵니다.
함수 적용 후 필요한 값은 iterator가 가리키는 곳에 위치하게 되고, 나머지 값들은 혼돈의 순서를 가지게 되지만 n번째 왼쪽에는 그 이하의 값들이 있게 되며, 오른쪽으로. 즉, 이 함수는 요소의 원래 순서를 파괴하는 것으로 이해해야 합니다.
자세한 내용은 설명서(https://www.cplusplus.com/reference/algorithm/nth_element/)에서 확인할 수 있습니다.
예:
벡터 a = { 4, 0, 3, 9, 2, 1, 8, 5, 6, 7 };
// 인덱스 4에서 요소를 찾습니다.
// 인수의 순서에 주의
nth_element(a.begin(), a.begin() + 4, a.end());
// a = [#, #, #, #, 4, $, $, $, $, $]
// 여기서 # <= 4 및 4 <= $