Rust是否会添加添加到矢量中的各个项目?

Ral*_*veo 5 heap vector rust

根据Rust文档:

向量总是在堆上分配它们的数据.

据我了解,这意味着:

  • Rust将在堆上分配足够的内存以便T以连续的方式存储类型.
  • Rust 将不会单独装箱,因为它们被放入向量中.

换句话说,如果我向向量添加一些整数,而Vec将分配足够的存储空间来存储这些整数,那么它也不会将这些整数存储起来; 引入另一层间接.

我不确定如何使用代码示例来说明或确认这一点,但我们非常感谢您的帮助.

Luk*_*odt 7

是的,Vec<T>将所有项目存储在连续的缓冲区中,而不是单独装箱.文件说明:

一种连续的可扩展数组类型,写入Vec<T>但是发音为'vector'.

注意,也可以对矢量进行切片以获得&[T](切片).它的文档再次证实了这一点:

动态大小的视图到连续的序列,[T].

切片是表示为指针和长度的内存块的视图.