¿Cómo funciona la siguiente función de comparación en c ++?
bool comp(int a,int b){
if ((a > 0 && b > 0) || (a < 0 && b < 0))
return false;
if ((a > 0) && (b < 0))
return false;
}
Para una matriz dada, que contiene enteros positivos y negativos, la función anterior es útil para reorganizar la matriz de modo que, los enteros negativos seguidos de los enteros positivos y conserva el orden de los elementos.
Ejemplo
int arr [] = {1,2,-3,-1}, n=sizeof(arr)/sizeof(int);
sort(arr,arr+n, comp);
output : {-3,-1,1,2}
Pero no puedo entender cómo funciona, ¿podría alguien explicarme?