vector::reserve和vector::resize的区别
首先了解一下vector:
vector是线性容器,它的元素严格的按照线性序列排序,和数组一样,它的元素存储在一块连续的存储空间中,这也意味着我们不仅可以以下标的方式访问元素,还可以使用指针的偏移方式访问,和常规数组不一样的是,vector能够自动存储元素,可以自动增长或缩小存储空间。
vector::reserve
函数原型:
void reserve(size_type n);
reserve是容器预留空间,但并不是真正创建元素。在创建对象前,不能引用容器中的元素,当插入元素时,需要用push_back()和insert()。
reserve有一个参数:n为预留空间的大小。
vector::resize
函数原型:
void resize(size_type sz,T c = T());
resize是改变容器的大小,并创建对象。调用此函数时,可以引用容器中的对象,当加入新元素时,可以调用operator[]。
resize有两个参数:第一个参数为容器的新大小;第二个参数为加入容器的新元素。第二个参数可缺省。
vector::reserve
vector::resize
转载于:https://blog.51cto.com/10810429/1755428