17863963452 发表于 2021-04-10 14:52
Tags:最大值
请问Vec最大值怎么求呢?好像没有现成的函数
fn main() { let v:Vec<f64>=vec![f64::INFINITY,f64::NAN,1.,2.,f64::NEG_INFINITY]; let max=v.iter().fold(f64::NEG_INFINITY,|a,&x|{ x.max(a) }); assert_eq!(max,f64::INFINITY); }
// 对于Vec<i32>这种实现了Ord的,直接求 let a = vec![0, 1]; let b = a.iter().max(); // 对于Vec<f64>这种内部元素只实现了PartiaOrd的,麻烦一点,注意这里没有处理NaN的情况,如果有可能出现NaN你就需要处理它 let a = vec![0.0, 1.0]; a.iter().max_by(|&x, &y| x.partial_cmp(y).unwrap()).unwrap();
评论区
写评论