gpt4 book ai didi

arrays - 数组向量的内存布局是什么?

转载 作者:行者123 更新时间:2023-11-29 08:32:03 25 4
gpt4 key购买 nike

Vec<[f3; 5]>类型的变量存储为一个连续数组(Vec::len() * 5 * sizeof(f32) 字节)还是存储为 Vec指针?

最佳答案

Vec<T> 的内容是,不管 T ,单个堆分配,self.capacity() * std::mem::size_of::<T>()字节。 (Vec 过度分配——这就是 Vec<T> 而不是 Box<[T]> 的全部要点——所以在这个计算中重要的是容量,而不是长度。)实际的 Vec<T>本身需要三个单词(在 64 位机器上为 24 bytes)。

[f32; 5]只是一 block 内存,包含五个 32 位 float ,没有间接寻址;这是二十个字节(因此 std::mem::size_of::<[f32; 5]>() == 20 )。

关于arrays - 数组向量的内存布局是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54666812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com