小编Fir*_*ant的帖子

如何在不复制元素的情况下将 Vec 转换为数组?

我有一些Vec不平凡的类型,其大小我确定。我需要将其转换为固定大小的数组。理想情况下我想这样做

  1. 无需复制数据 - 我想使用Vec
  2. 无需用零数据预初始化数组,因为这会浪费 CPU 周期

问题写成代码:

struct Point {
    x: i32,
    y: i32,
}

fn main() {
    let points = vec![
        Point { x: 1, y: 2 },
        Point { x: 3, y: 4 },
        Point { x: 5, y: 6 },
    ];

    // I would like this to be an array of points
    let array: [Point; 3] = ???;
}
Run Code Online (Sandbox Code Playgroud)

这似乎是一个微不足道的问题,但是我无法在Vec文档、Rust Books 的切片部分或通过谷歌搜索中找到令人满意的解决方案。我发现的唯一一件事是首先用零数据初始化数组,然后从 复制所有元素Vec,但这不能满足我的要求。

arrays vector rust

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

arrays ×1

rust ×1

vector ×1