Сортировать std :: vector <int>, но игнорировать определенное число

у меня естьstd::vector<int> размером 10 и каждая запись изначально -1. Этот вектор представляет таблицу лидеров для моей игры (высокий балл), а -1 означает, что для этой записи нет баллов.

std::vector<int> myVector;
myVector.resize(10, -1);

Когда игра запускается, я хочу загрузить рекорд из файла. Я загружаю каждую строку (до 10 строк), конвертирую найденное значение вint сstd::stoiи, если число> 0, я заменяю его на -1 в настоящее время в векторе в текущей позиции.

Все это работает. Теперь к проблеме:

Поскольку значения в файле не обязательно отсортированы, я хочу отсортироватьmyVector после того, как я загружаю все записи. Я делаю это с

std::sort(myVector.begin(), myVector.end());

Это сортирует их в порядке возрастания (чем меньше баллов, тем лучше в моей игре).

Проблема заключается в том, что, поскольку вектор изначально заполнен -1, а в файле рекордов не обязательно сохраняются 10 записей, вектор может содержать несколько -1 в дополнение к баллам игрока.

Это означает, что при сортировке вектора с указанным выше кодом все -1 будут отображаться до счета игрока.

Мой вопрос: Как отсортировать вектор (в порядке возрастания), но все записи с -1 будут помещены в конец (так как они не представляют реальный счет)?

Ответы на вопрос(3)

Ваш ответ на вопрос