Я изучил с помощью алгоритма std :: и узнал об уникальности, но, попробовав его сам, я вижу, что результат не тот, который я ожидал, или я должен был сказать не как документальное утверждение:
Исключает все элементы, кроме первого, из каждой последовательной группы эквивалентных элементов из диапазона [first, last) и возвращает итератор за концом для нового логического конца диапазона.
vector<int> val = { 5,3,3,3,4};
unique(val.begin(), val.end());
for (auto it = val.begin(); it != val.end(); ++it)
cout << *it << " ";
вывод: 5 3 4 3 4. не должен ли он возвращаться: 5 3 4 3 3.
и я подумал, что его нужно сначала отсортироватьпоэтому я делаю это:
vector<int> val = { 5,3,3,3,4};
sort(val.begin(), val.end());
unique(val.begin(), val.end());
for (auto it = val.begin(); it != val.end(); ++it)
cout << *it << " ";
и вывод: 3 4 5 4 5.
Я обнаружил, что это действительно странно.ребята, вы знаете, почему?