【发布时间】:2019-05-23 00:28:50
【问题描述】:
假设 -- Vec<f32> 确实不具有任何 NaN 值或表现出任何 NaN 行为。
采取以下样本集:
0.28
0.3102
0.9856
0.3679
0.3697
0.46
0.4311
0.9781
0.9891
0.5052
0.9173
0.932
0.8365
0.5822
0.9981
0.9977
获取上述列表中最高值的索引(值可以是负数)的最简洁和最稳定的方法是什么?
我最初的尝试是这样的:
let _tmp = *nets.iter().max_by(|i, j| i.partial_cmp(j).unwrap()).unwrap();
let _i = nets.iter().position(|&element| element == _tmp).unwrap();
其中nets 是&Vec<f32>。在我看来,这显然是不正确的。
与此等效的 Python(考虑到上述假设):
_i = nets.index(max(nets))
【问题讨论】:
-
“nets 是
&Vec<f32>。在我看来这显然是不正确的。” — 这是否意味着您认为Vec有问题或者您有搞错了吗? -
@PeterHall -- 我犯了一个错误。 :-)
-
nets是&Vec<f32>— Why is it discouraged to accept a reference to a String (&String), Vec (&Vec) or Box (&Box) as a function argument?。 -
感谢@Shepmaster!
标签: algorithm floating-point rust idioms