Предполагая, что вы хотите отсортировать указатели Employee
в порядке возрастания по элементу данных employee_number
(т. Е. Ключ employee_number
) объектов, на которые они указывают, вы можете определить следующий предикат, используялямбда-выражение:
auto cmp = [](auto a, auto b) {
return a->get_number() < b->get_number();
};
Затем используйте алгоритм std::sort()
с указанным выше предикатом:
auto begin = &employees[1]; // skip 1st element
std::sort(begin, employees + num, cmp);
, где num
выше - 1
(так как вы сказали, что первая запись не используется) плюс количество Employee
указателей, вставленных до сих пор.
Я не совсем уверен, чего вы хотите достичь, но если у вас есть намерениевызова std::sort()
для массива каждый раз, когда в массив добавляется новый Employee
, вы можете рассмотреть возможность использования другого контейнера, например std::set
вместо массива.