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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> stl vector (объединение, пересечение и т.п.) 
:(
    Опции темы
becks
Дата 25.7.2011, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Добрый день, коллеги. Вопрос такой , есть два вектора такого вида:
Код

    vector< pair<int, int> > SUBR;    
    vector< pair<int, int> > OBJR;


Мне необходимо сравнить массивы second (массивы вторых элементов пары) этих векторов между собой. Допустим со всеми second из SUBR, такими, что их нет в second OBJR, делать операцию№1. С общими (одинаковыми) second из SUBR и OBJR делать операцию№2. И с second из  OBJR ,которые не встречаются в SUBR делать операцию №3.

Собственно работа со множествами получается, подскажите какие есть подходящие алгоритмы?
Заранее благодарен.
PM MAIL   Вверх
mes
Дата 25.7.2011, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



сравнивать элементы с одинаковым порядковым номером, или со всем рядом ? если второе массивы сортированы или нет ? 
ограничены ли старым стандартом ?

вообщем слишком обще написано, что не дает представлений о том, какое решение подойдет.. вот этот алгоритм может пригодиться :
http://cplusplus.com/reference/algorithm/set_difference/

Это сообщение отредактировал(а) mes - 25.7.2011, 17:10


--------------------
PM MAIL WWW   Вверх
Earnest
Дата 25.7.2011, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

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



Цитата(becks @  25.7.2011,  17:43 Найти цитируемый пост)
Собственно работа со множествами получается, подскажите какие есть подходящие алгоритмы?

Раз работа с множеством, то проще всего и сделать множество: отсортировать вектора по второму полю, а затем ищи подходящую операцию в stl: set_intersection, set_difference и т.д.
Если массивы не слишком велики, проще, как мне кажется, сделать нужную выборку во временный массив и с ней проделать необходимые операции.


--------------------
...
PM   Вверх
becks
Дата 25.7.2011, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

сравнивать элементы с одинаковым порядковым номером, или со всем рядом ?

Сравнивать со всем рядом.

Цитата

если второе массивы сортированы или нет ?


Массивы не отсортированы.

ограничены ли старым стандартом ?
Цитата

Нет. Не ограничен.


Хотелось бы еще добавить массивы небольшой размерности size = 30 +/- 20 .  Но задача такая, что операцию придется выполнять довольно часто, хотелось бы реализовать более менее разумным образом это дело. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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