【问题标题】:Rust - Vector with size defined at runtimeRust - 在运行时定义大小的向量
【发布时间】:2014-01-27 22:59:53
【问题描述】:

如何在 rust 中创建一个数组,其大小在运行时定义?

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

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

?

这在 rust 中是不可能的:

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

注意:我看到以简单的方式不可能做到这一点,here,但我拒绝接受这样简单的事情是不可能的:p

非常感谢!

【问题讨论】:

标签: vector rust


【解决方案1】:

没关系,我找到了:

let n = 15;
let val = 17;
let v = std::vec::from_elem(n,val);

【讨论】:

  • 请注意,这会创建一个长度为 val 的向量,其值为 n
【解决方案2】:

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

值是克隆的,与其他随意交还对同一对象的引用向量的语言相比,这是相当宽慰的。例如。 vec![vec![]; 2] 创建一个向量,其中两个元素都是独立向量,总共 3 个向量。 Python 的 [[]] * 2 创建一个长度为 2 的向量,其中两个元素(引用)相同的嵌套向量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    • 2018-01-09
    • 1970-01-01
    • 2010-12-08
    相关资源
    最近更新 更多