Rust - 运行时定义大小的向量

3

如何在Rust中创建一个大小由运行时定义的数组?

基本上,在Rust中如何转换以下代码:

void f(int n){ return std::vector<int>(n); }

这在Rust中是不可能的:

let n = 15;
let board: [int, ..n];

注意:我看到在这里(链接)以简单的方式做到这一点是不可能的,但我拒绝接受这样一个简单的事情是不可能的 :p 非常感谢!

可能是重复的问题Rust:创建长度不固定的向量 - Chris Morgan
如果您想创建一个零向量,稍微更新的答案适用。 - Stein
2个回答

3
没事了,我找到方法了:
let n = 15;      // number of items
let val = 17;    // value to replicate
let v = std::vec::from_elem(val, n);

1
请注意,这会创建一个长度为val且值为n的向量。 - Stein

0

现代 Rust 中的正确方式是 vec![value; size]

值被克隆,这与其他语言相比是一种解脱。例如,vec![vec![]; 2] 创建一个向量,其中两个元素是独立的向量,总共有3个向量。Python 的 [[]] * 2 创建一个长度为2的向量,其中两个元素是(对)同一个嵌套向量的引用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接