У меня есть список объектов Point (каждый со свойствами x, y), и я хотел бы найти самые левые и самые правые точки. Я пытался сделать это с помощью find_if, но я не уверен, что это путь, потому что я не могу передать экземпляр компаратора. Find_if путь? Кажется нет. Итак, есть ли в <algorithm>
алгоритм для достижения этой цели?
Заранее спасибо.
#include <iostream>
#include <list>
#include <algorithm>
using namespace std;
typedef struct Point{
float x;
float y;
} Point;
bool left(Point& p1,Point& p2)
{
return p1.x < p2.x;
}
int main(){
Point p1 ={-1,0};
Point p2 ={1,0};
Point p3 ={5,0};
Point p4 ={7,0};
list <Point> points;
points.push_back(p1);
points.push_back(p2);
points.push_back(p3);
points.push_back(p4);
//Should return an interator to p1.
find_if(points.begin(),points.end(),left);
return 0;
}