默认情况下,克隆Vec时,仅为新Vec分配所需的最小容量:
fn main() {
let mut x = Vec::with_capacity(10);
x.push(1);
x.push(2);
x.push(3);
println!("x capacity: {}", x.capacity()); // 10
let y = x.clone();
println!("y capacity: {}", y.capacity()); // 3
}
如果我想保留原来的容量,克隆Vec的最有效方法是什么?有没有办法分配一个容量为x.capacity()
的新向量,然后只从我的第一个向量中复制值?
1条答案
按热度按时间7gcisfzg1#