Предикат возвращающий есть ли пересечение
От: wonderer  
Дата: 18.08.09 23:57
Оценка:
Доброе время суток

Давеча попался мне вопрос один, на который я не могу найти ответ и поэтому он меня мучает...


You need to define the following function so that is will return true if the sets passed to it have any intersection and false otherwise:

template <class T>
bool hasIntersection(std::vector<T>& set1, std::vector<T>& set2);


Reffering to the scenario above, which one of the following STL functions can be used to to implement hasIntersection
1)std::search_n
2)std::find_first_of
3)std::equal
4)std::nth_element
5)std::adjacent_find


Насколько мне известно, все вышеперечисленные функции принимают предикат, в который передается один элемент, а не целая пачка, что я первым делом проверил, поискав сигнатуры оных. Да и как там может быть, что алгоритмы работают поитераторно, а передается целый контейнер?

Есть мысль — что этот самый контейнер и есть элемент какого-то другого контейнера, по которому и бежит итератор. тогда думаю в сторону find_first_of
А если нет — тогда adjacent_find

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