首页 文章

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

提问于
浏览
4

根据Rust文档:

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

据我了解,这意味着:

  • Rust将在堆上分配足够的内存,以便以连续的方式存储类型 T .

  • Rust will not 单独将项目放入向量中 .

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

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

1 回答

  • 6

    YesVec<T> 将所有项目存储在连续的缓冲区中,而不是单独装箱 . The documentation州:

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

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

    动态大小的视图到连续序列,[T] . 切片是表示为指针和长度的内存块的视图 .

相关问题