【发布时间】:2015-04-29 12:01:04
【问题描述】:
我有一个双精度向量,需要知道向量中最小值的索引和值。使用算法头很容易做到这一点,但是我需要忽略一些索引。
仅删除索引不起作用,因为我需要原始索引。另一种选择是为所有必须跳过的值添加一个常数,以确保它们不是最小值。然而,这似乎非常低效。
目前我有以下功能,我仍然需要跳过except 中给出的索引。我试图找到d_distance 的最小值。
pair<size_t, double> City::closest(vector<size_t> const &except) const
{
auto min_el = min_element(d_distance.begin(), d_distance.end());
size_t idx = distance(d_distance.begin(), min_el) + 1;
return make_pair(idx, *min_el);
}
请注意,我的问题与 this question 不同,因为他想跳过某些值而不是索引。
【问题讨论】:
-
看起来有点像你正在尝试制作一个穷人的图形算法。不要与之抗争:图表很好。顶点着色是您似乎在此处模仿的机制。