#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec;

    // 使用 reserve 预分配空间
    vec.reserve(10);
	std::cout << "Size after reserve: " << vec.size() << std::endl;
    std::cout << "Capacity after reserve: " << vec.capacity() << std::endl;

    // 使用 resize 改变大小
    vec.resize(5);
    std::cout << "Size after resize: " << vec.size() << std::endl;
    std::cout << "Capacity after resize: " << vec.capacity() << std::endl;

    return 0;
}

vector预先分配内存空间---reserve 和 resize的区别_#include


reserveresize 的区别

reserve(size_t n):只增加容量,不改变当前的元素数量。它不会调用任何元素的构造函数。

resize(size_t n):改变当前元素的数量,可能增加或减少元素。增加元素时会调用元素的默认构造函数,减少元素时会调用元素的析构函数。