gpt4 book ai didi

vector - Rust 是否将添加到向量中的单个项目装箱?

转载 作者:行者123 更新时间:2023-11-29 07:50:13 26 4
gpt4 key购买 nike

根据 Rust 文档:

Vectors always allocate their data on the heap.

据我了解,这意味着:

  • Rust 将在堆上分配足够的内存以连续的方式存储类型 T
  • Rust 不会在将项目放入向量中时将它们单独装箱。

换句话说,如果我将几个整数添加到一个向量中,而 Vec 将分配足够的存储空间来存储这些整数,它不会同时装箱这些整数;引入另一层间接。

我不确定如何用代码示例来说明或确认这一点,但我们将不胜感激。

最佳答案

Vec<T>会将所有项目存储在一个连续的缓冲区中,而不是将它们单独装箱。 The documentation状态:

A contiguous growable array type, written Vec<T> but pronounced 'vector.'

请注意,也可以对向量进行切片,以获得 &[T] (片)。 Its documentation , 再次确认这一点:

A dynamically-sized view into a contiguous sequence, [T].

Slices are a view into a block of memory represented as a pointer and a length.

关于vector - Rust 是否将添加到向量中的单个项目装箱?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39679310/

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