Q: How can I sort a 'CArray' (or 'CStringArray', 'CIntArray', etc.)?
A: If the CxxxArray's items can be compared, then use 'std::sort':
Ascending:
Descending:Code:#include <algorithm> CArray<int, int&> MyCArray; CStringArray MyStringArray; // Sort the CArray of ints std::sort(MyCArray.GetData(), MyCArray.GetData() + MyCArray.GetSize()); // Sort the CStringArray std::sort(MyStringArray.GetData(), MyStringArray.GetData() + MyStringArray.GetSize());
You need to supply a comparison function.
FAQ contributed by: [Paul McKenzie]Code:#include <algorithm> bool SortDescendingInt(const int& x, const int& y) { return x > y; } bool SortDescendingString(const CString& s1, const CString& s2) { return s1 > s2; } CArray<int, int> MyCArray; CStringArray MyStringArray; // Sort the CArray of ints std::sort(MyCArray.GetData(), MyCArray.GetData() + MyCArray.GetSize(), SortDescendingInt); // Sort the CStringArray std::sort(MyStringArray.GetData(), MyStringArray.GetData() + MyStringArray.GetSize(), SortDescendingString);


Reply With Quote

Bookmarks