簡體   English   中英

如何更改Rust中矢量的長度?

[英]How can I change the length of a vector in Rust?

編者注:這個問題早於Rust 1.0,語法和方法從那時起就發生了變化。 一些答案解釋了Rust 1.0。

我有一個函數,我想修改一個向量。

fn f(v: &mut Vec<int>) {
    v = Vec::from_elem(10 as uint, 0i);
}

fn main() {
    let mut v: Vec<int> = Vec::new();
    f(&mut v);
}

但這無法編譯。 具體來說,我想調整v以包含10個零值元素。 我究竟做錯了什么?

編者注:這個答案早於Rust 1.0,不再一定准確。 其他答案仍包含有價值的信息。

你正在尋找grow方法。

let mut vec = vec![1i,2,3];
vec.grow(4, &10);
println!("{}", vec);

或者是growclear的結合。

您可以在此處瀏覽文檔: http//static.rust-lang.org/doc/master/std/vec/struct.Vec.html

使用clearresize方法。 (這似乎是Rust 1.0和1.5的正確答案。)

fn f(v: &mut Vec<u32>) {
    // Remove all values in the vector
    v.clear();

    // Fill the vector with 10 zeros
    v.resize(10, 0);
}

fn main() {
    let mut v: Vec<u32> = Vec::new();
    f(&mut v);
    assert!(v == [0,0,0,0,0,0,0,0,0,0]);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM