Vector를 array로 변환

link


Vector를 array로 변환

// rust

fn iter_to_array<Element, const N: usize>(mut iter: impl Iterator<Item = Element>) -> [Element; N] {
    // Here I use `()` to make array zero-sized -> no real use in runtime.
    // `map` creates new array, which we fill by values of iterator.
    let res: [_; N] = std::array::from_fn(|_| iter.next().unwrap());
    // Ensure that iterator finished
    // assert!(matches!(iter.next(), None));
    assert!(iter.next().is_none());
    res
}

fn main() {
    let my_vec = vec![1, 2, 3, 4, 5, 7];
    let my_array: [&i32; 6] = iter_to_array(my_vec.iter());
    println!("my array : {:?}", my_array);
}
  • result
my array : [1, 2, 3, 4, 5, 7]