如何声明生锈中可比材料的通用矢量

问题描述 投票:0回答:1

如何定义Rust中可比的矢量?

说,i32i16 ......

我试过arr: Vec<Ord>,但编译器抱怨the trait "std::cmp::Ord" cannot be made into an object

基本上我需要存储一个可比对象矢量的矢量。例如

    struct Setup<T: Ord + Copy> {
        arr: Vec<Vec<T>>
    }

    impl<T: Ord + Copy> Setup<T> {
        fn new() -> Self {
            Self {
                arr: vec![
                    vec![1, 2, 3, 4, 5],
                    vec![1.0, 2.0, 3.0]
                ]
            }
        }
    }

而不是让消费者决定这种类型究竟是什么,我希望他们可以获得类似的东西。

generics rust
1个回答
1
投票

类型Vec<Ord>将是Vec,其中每个项目是特征对象。你想要做的是做Vec<T>,然后将T上的特征设置为: Ord,例如

struct Foo<T: Ord> {
  arr: Vec<T>,
}
© www.soinside.com 2019 - 2024. All rights reserved.