il mio problema è il seguente (è un esempio semplice per mostrare il problema):ordinare un array in base a membri di un altro array in C++
ho:
int* array1;
double* array2.
array1=new int[10];
array2=new double[10];
array1=filledWithIntegers(random);
array2=filledWithDoubles(random);
// Qui voglio ordina array1 in base ai valori dell'array2. Sto cercando di usare la funzione qsort di stdlib. qsort (array1,6, sizeof (int), compare);
Il punto è come rendere la funzione di confronto per ordinare matrice1 basata su matrice2.
Non è possibile utilizzare le strutture di dati della libreria std, deve essere eseguito direttamente nei puntatori degli array.
Grazie.
Quasi. 'compare' dovrebbe restituire' -1' (invece di '0') quando è più piccolo. – user2k5
@ user2k5 Hai ragione - Ho cambiato la funzione per utilizzare il trucco del segno da [questa risposta] (http://stackoverflow.com/a/4609795/335858). – dasblinkenlight
Non c'è bisogno di un ulteriore array di permutazione, basta calcolare le posizioni di 'a''s e' b' all'interno di 'array1'. Il comparatore deve già sapere 'array2', comunque. –