C++ STL vector预分配空间——resize和reserve
vector的resize
:既分配了空间,也创建了对象,会调用构造函数
vector的reserve
:reserve()表示容器预留空间,但不是真正的创建对象,需要通过insert()或push_back()等操作创建对象
reserve()只修改capacity大小,不修改size大小,
resize()既修改capacity大小,也修改size大小。
因此,在只需要足够的空间而不需要生成对象时(通常是为了节约插入元素的时间),应该选择reserve方法。