обход списка - PullRequest
       5

обход списка

0 голосов
/ 24 марта 2011

я пытаюсь пройти через список 2 значений за раз, но по какой-то причине он застрял в бесконечном циклеa - это {1,2,3,3,4,5,6,6,6,7}, и я пытаюсь удалить дубликаты.я пытаюсь сначала получить * i = 1 и * j = 2, а затем сместиться вниз, чтобы * i = 2 и * j = 3. что я сделал не так в этом коде ??c ++ списки, извините, если этот вопрос звучит глупо

Ответы [ 2 ]

4 голосов
/ 24 марта 2011

Вы хотите использовать it2 = a.erase(it2);, иначе it2 будет указывать на элемент, который вы удалили из списка.a.erase возвращает элемент, следующий за it2.

3 голосов
/ 24 марта 2011

Поскольку ваш список выглядит отсортированным, и вы хотите удалить дубликаты, используйте unique:

a.unique();

Тогда вам не нужно связываться с итераторами, стиранием и т. Д.

См. http://www.cplusplus.com/reference/stl/list/unique/

...