При чтении STL я понял, что нет std::erase
. Я не совсем уверен, почему его там нет. Допустимый пример использования следующий
std::vector<int> odd { 1, 3, 5, 3, 9, 11, 5, 17 };
std::sort(odd.begin(), odd.end());
std::erase(std::unique(odd.begin(), odd.end()), odd.end());
Однако он встроен в каждый контейнер. Если производительность является причиной, таким образом, что если объекты смежны, они могут быть удалены одним выстрелом. Но я думаю, что это выполнимо с помощью специализации шаблона.