Rust 是不是将添加到向量中的单个项目装箱?
Posted
技术标签:
【中文标题】Rust 是不是将添加到向量中的单个项目装箱?【英文标题】:Does Rust box the individual items that are added to a vector?Rust 是否将添加到向量中的单个项目装箱? 【发布时间】:2017-02-02 09:48:09 【问题描述】:根据 Rust 文档:
向量总是在堆上分配它们的数据。
据我了解,这意味着:
Rust 将在堆上分配足够的内存来以连续的方式存储类型T
。
Rust 不会在将项目放入向量中时单独装箱。
换句话说,如果我将一些整数添加到向量中,而Vec
将分配足够的存储空间来存储这些整数,它不会也将这些整数装箱;引入另一层间接。
我不确定如何通过代码示例来说明或确认这一点,但我们不胜感激。
【问题讨论】:
没有。正确的。正确。 【参考方案1】:是的,Vec<T>
会将所有项目存储在一个连续的缓冲区中,而不是将它们单独装箱。 The documentation 状态:
一种连续可增长的数组类型,写作
Vec<T>
,但发音为“向量”。
请注意,也可以对向量进行切片,以获得&[T]
(切片)。 Its documentation 再次证实了这一点:
连续序列的动态大小视图,
[T]
。切片是一个内存块的视图,表示为一个指针和一个长度。
【讨论】:
以上是关于Rust 是不是将添加到向量中的单个项目装箱?的主要内容,如果未能解决你的问题,请参考以下文章