我对Rust中的向量文档中似乎存在冲突的语句感到困惑:
"向量"是动态或"可增长"数组,实现为标准库类型
Vec<T>.
和
Vectors将其内容存储为
T堆上的连续数组.这意味着它们必须能够知道T编译时的大小(即,需要多少字节来存储T?).在编译时无法知道某些东西的大小.对于这些,你必须存储一个指向那个东西的指针:谢天谢地,这个Box类型完美地适用于此.
Rust向量是动态可扩展的,但是我不知道它如何适合在编译时必须知道它们的大小的语句.
已经有一段时间了,因为我使用的是低级语言,我必须考虑内存分配,所以我可能会遗漏一些明显的东西.
She*_*ter 11
注意措辞:
他们必须能够知道它的大小
T
这表示必须知道单个元素的大小.元素的总数以及分配的内存总量是未知的.
当向量分配内存时,它表示"我想存储12个FooBar结构.一个FooBar是24个字节,因此我需要总共分配288个字节".
的12是向量的动态容量,24是一个元件(的静态大小T).
| 归档时间: |
|
| 查看次数: |
230 次 |
| 最近记录: |