c++ 容量回收机制

#include <iostream>
#include <vector>

int main(){

    std::vector<int> vec(10, 10);
    vec.clear();
    // 立即回收容量机制
    {
        std::vector<int> empty_vec;
        empty_vec.swap(vec);
        std::cout << "After swap vec capacity : " << vec.capacity() << std::endl;
        std::cout << "After swap empty_vec capacity : " << empty_vec.capacity() << std::endl;
    }

    return 0;
}

使用 reserve() 可以提前为向量分配足够的内存,减少内存重新分配的次数,提高性能。

std::vector<int> vec;
// 预留空间
vec.reserve(1000);
std::cout << "Capacity after reserve(1000): " << vec.capacity() << std::endl;

使用 shrink_to_fit() 可以请求收缩向量的容量以匹配其大小,释放多余的内存。

// 收缩容量
vec.shrink_to_fit();
std::cout << "Capacity after shrink_to_fit: " << vec.capacity() << std::endl;

posted @ 2025-07-30 18:33  xiaoluosibky  阅读(12)  评论(0)    收藏  举报