Vec<u16>
的内容需要多少空间?比方说,有1000个元素。有没有办法用测试程序验证这个?
这是否保证与&[u16]
相同? (我认为没有意义,因为转换很便宜)
Vec[u8]
,&[u8]
等
(std::mem::size_of
返回类型的静态大小,而不是其内容的静态大小)
答案 0 :(得分:4)
是强>
矢量内容的表示与切片的内容相同,与固定大小的数组相同。因此,您可以比较std::mem::size_of::<[u16, 1]>()
和std::mem::size_of::<[u16, 10]>()
,看看它们总是相差10倍。 (Citation: this code。)
Rust使用字节索引,因此u8
占用一个字节,u16
占用两个字节,u32
占用四个字节,u64
占用八个字节。 bool
也需要一个字节;每个字节有七个浪费的比特(因此类似于当前不稳定的BitVec
)。