mi problema es el siguiente (es un ejemplo fácil de mostrar el problema):Ordena una matriz basada en los miembros de otra matriz en C++
tengo:
int* array1;
double* array2.
array1=new int[10];
array2=new double[10];
array1=filledWithIntegers(random);
array2=filledWithDoubles(random);
// Aquí quiero ordenar array1 en función de los valores de array2. Estoy tratando de usar la función qsort de stdlib. qsort (array1,6, sizeof (int), comparar);
El punto es cómo hacer la función de comparación para el orden array1 basado en array2.
No es posible usar las estructuras de datos de la biblioteca std, se debe hacer directamente en los punteros de la matriz.
Gracias.
Casi. 'compare' debería devolver' -1' (en lugar de '0') cuando es más pequeño. – user2k5
@ user2k5 Tiene razón: cambié la función para usar el truco de firma de [esta respuesta] (http://stackoverflow.com/a/4609795/335858). – dasblinkenlight
No necesita una matriz de permutación adicional, simplemente calcule las posiciones de 'a' y' b' dentro de 'array1'. El comparador ya tiene que saber 'array2', de todos modos. –