在C++的std::vector
中,reserve
和resize
有以下作用:
reserve(size_type n)
:这个函数用于预分配足够的内存来存储n个元素。当向vector中添加新元素时,如果当前的元素数量超过了预分配的内存,vector就需要重新分配内存,这个过程可能会很耗时。通过使用reserve
,你可以一次性预分配足够的内存,避免多次重新分配内存的开销。需要注意的是,reserve
并不会改变vector中元素的数量,它只是预分配内存。
std::vector<int> vec;
vec.reserve(100); // Preallocate memory for 100 elements
resize(size_type n)
:这个函数用于改变vector中元素的数量。如果n大于当前的元素数量,新的元素将被添加到vector的末尾,这些新元素的值将被初始化为默认值。如果n小于当前的元素数量,vector的末尾将被删除,直到元素数量等于n。
std::vector<int> vec;
vec.resize(100); // Resize vector to hold 100 elements