resize和resever

vector中resize和reserve的区别:

resize(n);1 2 4 8(2倍增长)

resize(n,val);

resize(100)开辟100个空间,初始化为0。

resize函数用来扩容,重新给容器分配内存大小,并且创建对象.

reserve(n);

reserve用来给vector预分配存储区大小,即capacity的值,但是没给这段内存进行初始化。reserve的参数n是推荐预分配内存的大小,实际分配的可能等于或者大于这个值,即大于capacity的值.需要注意的是reserve函数分配出来的内存空间,只表示vector可以利用这部分内存,但vector不能有效的访问这些内存空间,访问的时候就会出现越界现象,导致程序崩溃。

猜你喜欢

转载自blog.csdn.net/qq_41804181/article/details/81197101