std::sort()
должно работать:
CArray<int> arrayOfInts;
arrayOfInts.Add(7);
arrayOfInts.Add(114);
arrayOfInts.Add(3);
std::sort(arrayOfInts.GetData(), arrayOfInts.GetData()+arrayOfInts.GetSize());
При этом используется указатель на первый элемент в массиве в качестве начального итератора, а указатель на один после последнего элемента в качестве последнего итератора (в любом случае никогда не следует разыменовывать, так что все хорошо). Вы также можете передать пользовательский предикат, если массив содержит более интересные данные:
struct Foo
{
int val;
double priority;
};
bool FooPred(const Foo& first, const Foo& second)
{
if ( first.val < second.val )
return true;
if ( first.val > second.val )
return false;
return first.priority < second.priority;
}
//...
CArray<Foo> bar;
std::sort(bar.GetData(), bar.GetData()+bar.GetSize(), FooPred);
О - и не используйте CArray
.