Rust:有效存储f64和非f64

z18hc3ub  于 6个月前  发布在  其他
关注(0)|答案(1)|浏览(72)

在rust中,是否有一种有效的方法来存储一个大的Vec<f64>,它可能偶尔包含非f64。一种简单的方法:

enum MaybeNumber {
    Number(f64)
    NonNumber(Box<...>)
}

字符串
Vec<MaybeNumber>将存储额外的8位来容纳枚举,从而导致每个f64 16位。

xzv2uavs

xzv2uavs1#

您可以将NonNumber(Box<...>)存储在Vec<f64>之外,并在其位置存储虚拟f64
然后,您需要维护一个单独的数据结构,该结构指示在哪些索引处存在伪f64 s,并且需要由NonNumber值替换。

相关问题