c++在点集中查找最左上的点
时间: 2024-03-26 19:38:02 浏览: 73
以下是在 C++ 中实现在点集中查找最左上的点的示例代码:
```cpp
#include <iostream>
#include <vector>
#include <limits> // for numeric_limits
using namespace std;
// 定义点的结构体
struct Point {
int x;
int y;
};
// 在点集中查找最左上的点
Point find_left_top_point(const vector<Point>& points) {
int min_x = numeric_limits<int>::max();
int min_y = numeric_limits<int>::max();
Point left_top_point;
for (const auto& point : points) {
if (point.x < min_x || (point.x == min_x && point.y < min_y)) {
min_x = point.x;
min_y = point.y;
left_top_point = point;
}
}
return left_top_point;
}
int main() {
// 测试代码
vector<Point> points = {{1, 2}, {3, 4}, {0, 5}, {2, 1}};
Point left_top_point = find_left_top_point(points);
cout << "The left top point is (" << left_top_point.x << ", " << left_top_point.y << ")" << endl;
return 0;
}
```
在这个示例代码中,我们首先定义了一个结构体 Point 表示点,其中包含 x 和 y 两个成员变量。然后,我们实现了 find_left_top_point 函数,用于在点集中查找最左上的点。该函数使用了一个 for 循环遍历点集中的每个点,对于每个点,如果它的 x 坐标小于 min_x 或者它的 x 坐标等于 min_x 且 y 坐标小于 min_y,就更新 min_x 和 min_y 为该点的坐标,并将该点赋值给 left_top_point。最后,函数返回 left_top_point。
在主函数中,我们定义了一个点集,然后调用 find_left_top_point 函数查找其中最左上的点,并将结果输出到控制台中。