我正在尝试从f32
:
let v: [f32; 5] = [1.0, 2.0, 3.0, 4.0, 5.0];
let res = v.iter().max().unwrap();
但是Ord
没有实现特征f32
,我无法实现它,因为
只有当前包中定义的特征可以针对任意类型[E0117]
实现
我知道PartialOrd
,但在这种情况下我无法弄清楚如何使用它。
我确信我的收藏品不是空的,并且不包含NaN
或无限。
有没有办法从f32集合中获取最大值,除非通过编写自己的包装器或这样的命令函数?
fn maxf32(arr: &[f32; 5]) -> f32 {
let mut res = arr[0];
for &x in arr {
if x > res {
res = x;
}
}
res
}