BacCM
@BacCM
C++ почти с рождения

Зачем нужен std::unique?

Вопрос не, в том что он делает, а для чего и почему так реализован?
Грубо говоря, если есть набор данных, то чтобы оставить только уникальные элементы, придется сначала отсортировать, а потом уже использовать unique. Иначе поведение не определено.
Как-то так если ничего не напутал:

std::vector<int> a = {1, 3, 4, 454, 5454, 4, 3, 2, 2, 1, 1, 2, 3, 5, 2, 1, -32};
std::sort(begin(a), end(a));
a.erase(std::unique(begin(a), end(a)), end(a));


Есть подозрение, что сделано так, потому как сортировка у каждого может быть своя уже отсортировано и прочее бла бла бла. Но всё равно странно.
Скажем так когда-то давно когда впервые воспользовался этим методом, был неприятно удивлен, т.к. естественно ман не прочитал. А тут как раз недавно набрел на срач по этому поводу...

Какие у кого мысли?
Может он вообще для другого нужен?
  • Вопрос задан
  • 153 просмотра
Пригласить эксперта
Ответы на вопрос 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
https://ru.cppreference.com/w/cpp/algorithm/unique - расписано яснее некуда.
Для хранения множества уникальных элементов просто используйте std::set или std::unordered_set
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
PiRL Ventures Москва
от 110 000 руб.
SmaSS Самара
от 75 000 до 120 000 руб.
2Reallife Москва
от 120 000 до 150 000 руб.
21 янв. 2019, в 17:44
2000 руб./за проект
21 янв. 2019, в 16:52
8000 руб./за проект