gpt4 book ai didi

arrays - 创建多个不同但固定大小的数组

转载 作者:行者123 更新时间:2023-12-02 18:04:02 25 4
gpt4 key购买 nike

是否可以创建技术上可变大小但在编译时已知的数组?更准确地说,我想做这样的事情:

fn main() {
for n in 1..5 {
let array: [i32; n] = [0; n];
// Do stuff with array
}
}

这段代码无法编译,但我觉得应该可以做到,因为 for 循环唯一可以被编译器解开的事情,如下所示:

fn main() {
let array: [i32; 1] = [0; 1];
let array: [i32; 2] = [0; 2];
let array: [i32; 3] = [0; 3];
let array: [i32; 4] = [0; 4];
let array: [i32; 5] = [0; 5];
}

它编译并执行我想要的操作,但非常重复

我可以使用向量或其他数据结构,但是这样我就会在堆中包含变量,并且我认为我不应该仅仅因为我在 for 中使用数组而使用堆循环

最佳答案

只需使用 unroll crate 。

#[unroll::unroll_for_loops]
fn main() {
for n in 1..5 {
let array: [i32; n] = [0; n];
println!("{:?}", array);
}
}

关于arrays - 创建多个不同但固定大小的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73719004/

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