Usando QSORT () con puntatori di classe
-
30-10-2019 - |
Domanda
Sto usando la funzione integrata qsort()
Per ordinare un vettore di class item
Puntatori.
class item {
int value;
vector<char> c;
...
...
};
//Declaration of vector
vector<item*> items;
//Function Call
qsort(&items, items.size(), sizeof(item*), value_sort);
int value_sort(const void* a, const void* b)
{
item* pa = *(item**) a;
item* pb = *(item**) b;
if (pb->value < pa->value)
return 1;
else if (pa->value < pb->value)
return -1;
return 0;
}
Nella modalità debugger, neppure indica pa
né pb
indicare una posizione valida. Set di tutti i membri dei dati del class items
puntato da entrambi pa
o pb
contenere valori di immondizia. Dove sto facendo un errore? Inoltre, non sono sicuro sull'uso dei doppi puntatori.
Grazie.
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow