001
25.07.2005, 18:19 Uhr
Pryrates
|
Hallo,
ganz einfach geht es so:
| C++: |
int UIntCompare( const void * pElem1, const void * pElem2 ) { UINT* p1 = (UINT*)pElem1; UINT* p2 = (UINT*)pElem2;
// Ich gehe davon aus, dass keine Null-Pointer übergeben werden // Subtraktion der Werte kann zu einem Überlauf führen, sodass wir direkte Vergleich durchführen müssen!!! if (*p1 < *p2) return -1; if (*p1 > *p2) return 1; return 0; }
// und dann in deinem Code: extern CUIntArray myUIntArray; qsort( (void*)myUIntArray.GetData(), myUIntArray.GetSize(), sizeof( UINT ), UIntCompare );
|
Ob es schnell genug für viele Elemente ist, sei dahingestellt.
CU, Pryrates. |