|
C/C++ C/C++, MSVC, GCC, G++, Borland C++ Builder |
|
Työkalut | Etsi tästä viestiketjusta | Näkymä |
#1
|
|||
|
|||
QSort CStringArray// first, declare these somewhere void SortStringArray (CStringArray& ar, BOOL bDescending); int CompareDescending(const void *a, const void *b); int CompareAscending(const void *a, const void *b); // put something in your CString array CStringArray bob; bob.Add("Are"); bob.Add("You"); bob.Add("Talking"); bob.Add("To"); bob.Add("Me?"); // sort it SortStringArray(bob, TRUE); // here's the code! ////////////////////////////////////////////////////////////////////////// int CompareAscending(const void *a, const void *b) { CString *pA = (CString*)a; CString *pB = (CString*)b; return (pA->Compare(*pB)); } ////////////////////////////////////////////////////////////////////////// int CompareDescending(const void *a, const void *b) { CString *pA = (CString*)a; CString *pB = (CString*)b; return (-1 * (pA->Compare(*pB))); } ////////////////////////////////////////////////////////////////////////// void SortStringArray (CStringArray& csa, BOOL bDescending) { int iArraySize = csa.GetSize(); if (iArraySize <= 0) return; int iCSSize = sizeof (CString*); void* pArrayStart = (void *)&csa[0]; if (bDescending) qsort (pArrayStart, iArraySize, iCSSize, CompareDescending); else qsort (pArrayStart, iArraySize, iCSSize, CompareAscending); } Ja jälleen, beautifier ennen käyttöä -- Lars
|
Käyttäjiä lukemassa tätä viestiketjua: 1 (0 jäsentä and 1 vierasta) | |
|