Есть ли способ использовать std :: set_intersection для двух разных типов наборов?
У меня есть два набора:
std::set l_set1;
std::set l_set2;
Я могу определите для них некоторый компаратор, который проверяет, равны ли X1 и X2.
struct sample_comparer
{
bool operator()(const &X1 p_left, const &X2 p_right)
{
return p_left == p_right;
}
};
Теперь я пытаюсь сделать пересечение множеств на этих двух наборах:
std::set l_intersect;
std::set_intersection(l_set1.begin(), l_set1.end(), l_set2.begin(), l_set2.end(),
std::inserter(l_intersect, l_intersect.begin()), sample_comparer());
К сожалению, я не могу заставить этот код работать. Я даже не уверен, возможно ли это, но из описания set_intersection я знаю, что могу использовать два разных итератора.
Я попытался найти несколько примеров кода, которые делают то, что я хочу, но не нашел? Может ли кто-нибудь представить мне рабочий образец кода для решения моей проблемы?
Обновление: ошибка:
ошибка: stl_function.h: 227: нет соответствия для 'operator
Заранее спасибо!