P.CLT.01 创建HashMap、VecDeque时,可以预先分配大约足够的容量来避免后续操作中产生多次分配

【描述】

预分配足够的容量,避免后续内存分配,可以提升代码性能。

【反例】

use std::collections::HashMap;
use std::collections::VecDeque;

fn main() {

    // 不符合
    let mut map = HashMap::new();
    map.insert("a", 1);
    map.insert("b", 2);
    map.insert("c", 3);
    println!("{:#?}", map);
    
    // 不符合
    let mut deque = VecDeque::new();
    deque.push_back(1);
    deque.push_back(2);
    deque.push_back(3);
    println!("{:#?}", deque);
}

【正例】

use std::collections::HashMap;
use std::collections::VecDeque;

fn main() {

    // 符合
    let mut map = HashMap::with_capacity(3);
    map.insert("a", 1);
    map.insert("b", 2);
    map.insert("c", 3);
    println!("{:#?}", map);
    
    // 符合
    let mut deque = VecDeque::with_capacity(3);
    deque.push_back(1);
    deque.push_back(2);
    deque.push_back(3);
    println!("{:#?}", deque);
}