Задать вопрос
HustleCoder
@HustleCoder

Как удалить одинаковые элементы из списка?

Допустим дан class T и список объектов класса list<T>. Как убрать из него одинаковые элементы? (Например, список {a, b, a, c, b} превратить в {a, b, c})
  • Вопрос задан
  • 816 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Нетология
    Специалист по информационной безопасности + нейросети
    12 месяцев
    Далее
  • Компьютерная академия «TOP»
    Учебная программа “Разработка программного обеспечения”
    30 месяцев
    Далее
Решения вопроса 2
@res2001
Developer, ex-admin
В общем случае сортируете, проходите по списку и удаляете рядом стоящие одинаковые элементы.

Но может надо решать проблему более кардинальным образом - вместо list использовать более подходящий контейнер - set? В set элементы уже отсортированы и уникальны.
Ответ написан
@youkerni
Unity3D developer
Создаешь коллекцию гарантирующую уникальность и добавляешь в нее все значения из списка. Получаем коллекцию уникальных элементов. Если тебе на выходе нужен список - очищаешь старый или создаешь новый, после чего в него добавляешь все уникальные элементы из созданной тобой коллекции.

По времени работы выйдет O(n * (n - a)), где N - количество элементов в списке, а - количество дубликатов. Ну если уж очень грубо, то O(n^2).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы