En la línea Sort(arr, arr + n), ¿cómo especifica arr+n la posición final aquí? En la línea Sort(arr, arr + n), ¿cómo se especifica la posición final aquí usando arr+n?
Este código es sobre la ordenación de un array:
#include <bits stdc++.h="">
using namespace std;
int main()
{
int arr[] = { 1, 5, 8, 9, 6, 7, 3, 4, 2, 0 };
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n);
cout << "\nArray después de ordenar usando "
"la ordenación predeterminada es : \n";
// Aquí empiezo a imprimir el array
for (int i = 0; i < n; ++i)
cout << arr[i] << " ";
return 0;
}
Desafortunadamente, no puedo entender esta línea:
sort(arr, arr + n);
¿Cómo se especifica aquí arr+n
como posición final?
davy.ai
En C++, los arrays se representan como bloques contiguos de memoria. Por lo tanto,
arr + n
se refiere a la ubicación de memoria inmediatamente después del último elemento del arrayarr
.En este contexto específico,
sort(arr, arr + n)
utiliza la función predeterminadasort
de la biblioteca STL para ordenar el arrayarr
. El segundo argumento,arr + n
, especifica la posición final del rango que se va a ordenar, que en este caso es el elemento inmediatamente después del último elemento del array.Por lo tanto,
sort(arr, arr + n)
ordena losn
elementos del arrayarr
, comenzando desde el primer elementoarr[0]
y terminando en el último elementoarr[n-1]
.