c++ - proyecto - ¿Cómo ordeno un CArray de un tipo definido por el usuario?
se esperaba un tipo definido por el usuario no un proyecto (1)
std::sort()
debería funcionar:
CArray<int> arrayOfInts;
arrayOfInts.Add(7);
arrayOfInts.Add(114);
arrayOfInts.Add(3);
std::sort(arrayOfInts.GetData(), arrayOfInts.GetData()+arrayOfInts.GetSize());
Esto utiliza el puntero al primer elemento de la matriz como el iterador de inicio, y el puntero a uno pasado el último elemento como el último iterador (nunca se debe desreferenciar de todos modos, entonces todo está bien). También podría pasar un predicado personalizado si la matriz contiene datos más interesantes:
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);
Ah, y no use CArray
.
¿Hay una forma incorporada de ordenar un CArray en C ++?