Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> vector 
:(
    Опции темы
Userman
Дата 22.9.2008, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 21.8.2008

Репутация: нет
Всего: нет



Как удалить совпадающие элементы вектора? (оставить по одному)
PM MAIL   Вверх
Alexeis
Дата 22.9.2008, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 4
Всего: 459



Алогоритм unique
Код

template <class ForwardIterator>
ForwardIterator unique(ForwardIterator first, ForwardIterator last);




--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
vinter
Дата 22.9.2008, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 8
Всего: 56



добавочка: вектор при этом должен быть отсортирован


--------------------
Мой блог
PM MAIL WWW   Вверх
Annihilator
Дата 22.9.2008, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

Репутация: 1
Всего: 3



Ну и окончательный вариант
Код

sort(vec.begin(),vec.end());
p=unique(vec.begin(),vec.end());
vec.erase(p,vec.end());

потому что unique не удаляет элементы, т.е. не изменяет размер массива, поэтому надо удалить ненужный "хвост"

Это сообщение отредактировал(а) Annihilator - 22.9.2008, 21:08


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
Alca
Дата 25.9.2008, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 2
Всего: 50



Цитата

поэтому надо удалить ненужный "хвост"

Ну и как удалить?


--------------------
PM WWW ICQ Skype Jabber   Вверх
mes
Дата 25.9.2008, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Alca @  25.9.2008,  09:27 Найти цитируемый пост)
Ну и как удалить? 


Цитата(Annihilator @  22.9.2008,  21:05 Найти цитируемый пост)
Код

sort(vec.begin(),vec.end());
p=unique(vec.begin(),vec.end());
vec.erase(p,vec.end());


или в более коротком виде
Код

sort(vec.begin(),vec.end());
vec.erase(unique(vec.begin(),vec.end()),vec.end());



--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.3343 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.