Я пытаюсь отсортировать вектор чисел и игнорировать определенное число, т.е. оставить его на месте. Этот ответ фактически не оставляет элемент, в котором он был найден.
Например, если у меня есть следующие
std::vector<int> test{5, 3, 8, 4, -1, 1, 11, 9, 6};
std::sort(test.begin(),
std::partition(test.begin(), test.end(), [](int n)
{return n != -1;}));
Сортировка test
в 1 3 4 5 6 8 9 11 -1
.Я искал пару часов и возился с обоими пользовательскими компараторами и использовал std::partition
, но я не могу найти решение, которое сортирует вектор test
в 1 3 4 5 -1 6 8 9 11
.Это просто очень сложно?