struct Cord
{
int x_cord;
int y_cord;
Cord(int x = 0,int y = 0):x_cord(x),y_cord(y) {}
bool operator < (const Cord& cord) const
{
if (x_cord == cord.x_cord)
{
return y_cord < cord.y_cord;
}
return x_cord < cord.x_cord;
}
bool operator == (const Cord& cord) const
{
return x_cord == cord.x_cord && y_cord == cord.y_cord;
}
};
std::set<Cord> cordRes,cordTmp;//initialized before
std::set<Cord> cordItersect;
std::set_intersection(cordRes.begin(),cordRes.end(),cordTmp.begin(),cordTmp.end(),cordRes.begin(),cordItersect.begin());
Компиляция для приведенного выше кода не удалась. Любые предложения, как использовать set_intersection
правильно в примере?
Спасибо
Одна проблема в том, что set_intersection принимает только пять аргументов. Другая проблема заключается в том, что вам нужен какой-то механизм для создания элементов, которые вы вставляете в cordItersect. В вашем случае это будет использовать std :: insertter.
std::set_intersection(cordRes.begin(), cordRes.end(),
cordTmp.begin(), cordTmp.end(),
std::inserter(cordItersect, cordItersect.end()));
Других решений пока нет …