Вы можете просто использовать std::sort
в заголовке <algorithm>
:
std::sort(p, p+n, [](const process & p1, const process & p2){return p1 < p2}); // Will sort p in ascending order
Но если вы действительно хотите сделать это вручную и передать массив вФункция, вы можете создать функцию как:
void sort_process(process * x, std::size_t len) // copy the pointer
{
std::sort(x, x+len, [](const process & p1, const process & p2){return p1 < p2;});
}
Но передача process x[]
, как вы сделали, эквивалентно.
Примечание: Как мы говорим о массивеуказатель на его первый элемент, который вы здесь передаете, это тоже указатель на первый элемент (а не массив).
Если вы действительно хотите передать его по ссылке, вы можете сделать этоследующим образом:
void sort_process(process * const & x, std::size_t len)
{
std::sort(x, x+len, [](const process & p1, const process & p2){return p1 < p2;});
}
Я добавил квалификатор const
, чтобы запретить изменение указателя, поскольку это не копия, а ссылка на исходный
Но вы этого не делаетедействительно получить что-нибудь, передав ссылку здесь, на мой взгляд.