ich habe für die Sortierung immer zwei Funktionen.
z.B.
Code: Alles auswählen
bool CompareDate( tItem *pData1, tItem *pData2 )
{
return( FileDB [pData1->FileDBIndex].Date < FileDB [pData2->FileDBIndex].Date );
}
bool CompareDateReverse( tItem *pData1, tItem *pData2 )
{
return( FileDB [pData2->FileDBIndex].Date < FileDB [pData1->FileDBIndex].Date );
}
Code: Alles auswählen
bool CompareDuration( tItem *pData1, tItem *pData2 )
{
return( FileDB [pData2->FileDBIndex].Duration > FileDB [pData1->FileDBIndex].Duration );
}
bool CompareDurationReverse( tItem *pData1, tItem *pData2 )
{
return( FileDB [pData1->FileDBIndex].Duration > FileDB [pData2->FileDBIndex].Duration );
}
Jetzt finde ich es eigentlich Quatsch das selbe 2x zu schreiben (ein Sortierung kann ja auch mal etwas komplexer werden) und dachte mir, dass ich ja einfach einen bool mit übergeben kann ob Reverse oder nicht.
Code: Alles auswählen
bool CompareDuration( tItem *pData1, tItem *pData2, bool Reverse )
Frage nun:
Geht das irgendwie einfacher, als es in eine if zu packen? Weil so kann ich es ja direkt 2x schreiben...
Code: Alles auswählen
if (!Reverse) return( FileDB [pData1->FileDBIndex].Duration > FileDB [pData2->FileDBIndex].Duration );
else return( FileDB [pData2->FileDBIndex].Duration > FileDB [pData1->FileDBIndex].Duration );
Code: Alles auswählen
ret = ( FileDB [pData1->FileDBIndex].Duration > FileDB [pData2->FileDBIndex].Duration );
if (!Reverse) return( ret );
else return( !ret );