首页 > 解决方案 > 检查 Rust 中所有向量的长度是否相同

问题描述

给定一个具有某个值的向量的向量T,即。Vec<Vec<T>>.

检查内部向量是否具有相同长度的惯用方法是什么?(没有外部依赖)

也就是说,true如果所有内部向量具有相同的长度,false否则。

标签: rust

解决方案


您可以使用该all方法检查迭代器的所有元素是否与谓词匹配。然后只需与列表中的第一个元素进行比较。

fn main() {
    let vec_of_vecs = vec![
        vec![1, 2, 3],
        vec![1, 2, 3],
        vec![1, 2, 3],
        vec![1, 2, 3],
        vec![1, 2, 3],
        vec![1, 2, 3, 4], // remove this to prove that it works for both cases
    ];
    let all_same_length = vec_of_vecs
        .iter()
        .all(|ref v| v.len() == vec_of_vecs[0].len());

    if all_same_length {
        println!("They're all the same");
    } else {
        println!("They are not the same");
    }
}

推荐阅读