Como a função comparadora abaixo funciona em 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 uma determinada matriz, que contém números inteiros positivos e negativos, a função acima é útil para reorganizar a matriz de modo que números inteiros negativos sigam números inteiros positivos e preservem a ordem dos elementos.
Exemplo:
int arr [] = {1,2,-3,-1}, n=sizeof(arr)/sizeof(int);
sort(arr,arr+n, comp);
output : {-3,-1,1,2}
Mas não consigo entender como está funcionando. Alguém poderia explicar?