STL: set_intersection и multiset / multimap
От: shestero  
Дата: 20.06.11 13:35
Оценка:
А как работает set_intersection c multiset?

                                std::multiset<float> tmp;
                                std::multiset<float> setDepthsT( vecDepthsK.begin(), vecDepthsK.end() ); // с повторениями
                                std::set_intersection( 
                                    setDepthsK.begin(), setDepthsK.end(), // multiset, повторения
                                    setDepthsT.begin(), setDepthsT.end(), // multiset
                                    std::inserter(tmp, tmp.begin())
                                );
                                setDepthsK=tmp; // multiset

Надо бы что бы повторяющиеся ключи остались...

Ещё вопрос как оптимизировать это для пересечения нескольких множеств что бы обойтись без временного множества set и не перекладывать элементы туда-сюда...

MSVC++2010...
Re: STL: set_intersection и multiset / multimap
От: Centaur Россия  
Дата: 20.06.11 17:07
Оценка: 5 (1)
Здравствуйте, shestero, Вы писали:

S>А как работает set_intersection c multiset?

S>Надо бы что бы повторяющиеся ключи остались...

[set.intersection]/5 Remarks: If [first1, last1) contains m elements that are equivalent to each other and [first2, last2) contains n elements that are equivalent to them, the first min(m, n) elements shall be copied from the first range to the output range, in order.


S>Ещё вопрос как оптимизировать это для пересечения нескольких множеств что бы обойтись без временного множества set и не перекладывать элементы туда-сюда...


Написать собственный алгоритм.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.