我正在编写一个程序来使用格雷厄姆扫描计算凸包的周长,并且需要在一组数据点中找到最低的 y 坐标。我在 struct 中使用std::min_element(vector.begin(), vector.end())
了重载运算符。问题是某些点可能共享相同的最低 y 坐标,在这种情况下,我需要使用它们的 x 值来比较它们。是否有任何快速作弊来检查是否有任何其他点与 min_element 共享相同的 y 而不必遍历所有内容?<
point
结构:
struct cord{
cord():x(0),y(0){}
int x,y;
bool operator<(const cord &p) const { return y < p.y; }
};
typedef std::vector<cord>::iterator vecIter;
函数调用:
vecIter lowestPoint =
std::min_element(points.begin(), points.end());
std::cout << "the lowest point of the data set is: " << "(" <<
lowestPoint->x << "," << lowestPoint->y << ")" << std::endl;