Trova il minimo e massimo valore di un vettore in Rust
One row functional solutions
Con gli interi il problema non sussiste, perché come la documentazione ci insegna, sono già presenti le funzioni:
// max
let a = [1, 2, 3];
let b: Vec<u32> = Vec::new();
assert_eq!(a.iter().max(), Some(&3));
assert_eq!(b.iter().max(), None);
// min
let a = [1, 2, 3];
let b: Vec<u32> = Vec::new();
assert_eq!(a.iter().min(), Some(&1));
assert_eq!(b.iter().min(), None);
Ora vediamo il caso di un vettore di floats, che è quello meno banale.
// Innanzitutto, generiamo un vettore
let vector = vec![0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 8.0, 9.0];
Ora cerchiamo il valore minimo.
// Find min
let x_min = vector.iter().fold(f64::INFINITY, |a, &b| a.min(b));
// Output -> 0.0
Infine, cerchiamo il valore massimo.
// Find max
let x_max = vector.iter().fold(0.0, |a: f64, &b| a.max(b));
// Output -> 9.0
supporta
Questo post ti è stato utile?
Tieni a mente che questo sito è privo di tracker, analytics e pubblicità, quindi tutela la tua privacy ma non guadagna dalle visite (inoltre, è progettato per avere un impatto ambientale minimo).
Se ti piace questo blog, sostieni le mie riserve di caffeina
condividi