有多個std::collections::LinkedList
s的正確方法是什麼?這些列表的數量在編譯時是未知的嗎?在Rust中有多個鏈接列表並在它們之間移動數據的正確方法是什麼?
我與數據填充它們,以及將它們合併(例如,使用append()
)。 我認爲最好有一個包含這些列表的向量,或者包含對這些列表的引用。
我曾嘗試以下:
use std::collections::LinkedList;
fn listtest() {
let mut v: Vec<LinkedList<i32>> = Vec::new();
v.push(LinkedList::new()); // first list
v.push(LinkedList::new()); // second list
v[0].push_back(1); // fill with data
v[1].push_back(3); // fill with data
v[0].append(&mut v[1]); // merge lists
}
fn main() {
listtest();
}
這不能編譯,因爲我使用append()
時有v
2個可變引用。我也嘗試使用Vec<&mut LinkedList<i32>>
,但沒有成功。
什麼是正確的方法來解決這個問題?