【Rust】動態陣列(二)
阿新 • • 發佈:2022-05-27
環境
- Time 2022-03-16
- Rust 1.59.0
概念
動態陣列分配在棧上,長度可以變化。
示例
reserve
保留額外空間,相當於擴容,容量可能會比擴容的大,帶異常版本:try_reserve
。
fn main() {
let mut vec = Vec::new();
vec.push(0);
vec.reserve(4);
println!("{}", vec.capacity()); // 8
}
reserve_exact
fn main() { let mut vec = Vec::new(); vec.push(0); vec.reserve_exact(4); println!("{}", vec.capacity()); // 5 }
shrink_to_fit
fn main() {
let mut vec = vec![0, 1, 2, 3, 4];
vec.reserve(4);
println!("{}", vec.capacity());
vec.shrink_to_fit();
println!("{}", vec.capacity());
}
shrink_to
fn main() { let mut vec = vec![0, 1, 2, 3, 4]; vec.reserve(4); println!("{}", vec.capacity()); vec.shrink_to(7); println!("{}", vec.capacity()); }
into_boxed_slice
fn main() {
let vec = vec![0, 1, 2, 3, 4];
let slice = vec.into_boxed_slice();
println!("{slice:?}");
}
總結
瞭解了動態陣列中相關的一些方法。