Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » CUIntArray sortieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
19.07.2005, 13:42 Uhr
~Tobias
Gast


hi

weiss jemand von euch, wie ich ein CUIntArray (mit mehr als 100 Einträgen) einfach und schnell sortieren und wieder abfüllen kann?

gruss Tobias
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.07.2005, 11:24 Uhr
mmc20
puss in boots


hi, ohne qsort sähe das dann so aus...

C++:
if ( myUIntArray.GetSize() > 1 ) {
    bool sort = false;
    do {
        sort = false;
        for ( int i = 1; i < myUIntArray.GetSize(); i++ ) {
            UINT* data1 = myUIntArray.GetAt(i);
            UINT* data2 = myUIntArray.GetAt(i-1);
            if ( data1 < data2 ) {
                UINT* tmp = m_db[i-1];
                m_db[i-1] = m_db[i];
                m_db[i] = tmp;
                sort = true;
            }
        }
    } while ( sort );
}


Dieser Post wurde am 26.07.2005 um 11:25 Uhr von mmc20 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: