【发布时间】:2020-05-04 15:36:27
【问题描述】:
我有两个课程Entity 和Ship。 Ship 继承自 Entity。它们具有x 和y 作为属性,代表二维平面上的位置。
squared_distance 函数返回船只和实体之间的距离。
class Entity
{
public:
int id, x, y;
Entity(int id, int x, int y) : id(id), x(x), y(y) {}
};
class Ship : public Entity
{
public:
int orientation, speed, rum;
Ship(int id, int x, int y, int ori, int s, int r):
Entity(id, x, y)
{
orientation = ori;
speed = s;
rum = r;
}
};
int squared_distance(Entity e, Ship s)
{
return pow((e.x - s.x), 2) + pow((e.y - s.y), 2);
}
我需要找到离船最近的实体。我有一个名为entities 的Entity 数组。一种方法是:
让ship 是Ship 的对象。
index 会将最近实体的索引提供给ship。
int min_distance = 10000000;
int index;
for (int i = 0; i < entities.size(); ++i)
{
int curr_distance = squared_distance(entities[i], ship);
if (curr_distance < min_distance)
{
min_distance = curr_distance;
index = i;
}
}
如何在算法库中使用带有std::min_element 的lambda 找到最近的实体?
【问题讨论】:
-
对不起,算法库中的std::min_element函数。