Gabriel Fleseriu
February 14th, 2003, 10:36 AM
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:
#include <algorithm>
CArray<int, int&> MyCArray;
CStringArray MyStringArray;
// Sort the CArray of ints</span>
std::sort(MyCArray.GetData(), MyCArray.GetData() + MyCArray.GetSize());
// Sort the CStringArray
std::sort(MyStringArray.GetData(), MyStringArray.GetData() + MyStringArray.GetSize());
Descending:
You need to supply a comparison function.
#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);
FAQ contributed by: [Paul McKenzie (http://www.codeguru.com/forum/member.php?u=1549)]
<br><br>
A: If the CxxxArray's items can be compared, then use 'std::sort':
Ascending:
#include <algorithm>
CArray<int, int&> MyCArray;
CStringArray MyStringArray;
// Sort the CArray of ints</span>
std::sort(MyCArray.GetData(), MyCArray.GetData() + MyCArray.GetSize());
// Sort the CStringArray
std::sort(MyStringArray.GetData(), MyStringArray.GetData() + MyStringArray.GetSize());
Descending:
You need to supply a comparison function.
#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);
FAQ contributed by: [Paul McKenzie (http://www.codeguru.com/forum/member.php?u=1549)]
<br><br>