温馨提示×

c++ resize和reserve区别何在

c++
小樊
230
2024-06-24 16:45:27
栏目: 编程语言

在C++中,resize()和reserve()都是用来调整容器大小的函数,但是它们的作用和用法略有不同。

  1. resize():
  • resize()用于改变容器的大小,可以增加或减少容器中元素的数量。
  • 如果resize()函数增加容器的大小,它会在末尾添加新元素,并将新元素的值初始化为默认值。
  • 如果resize()函数减少容器的大小,它会删除末尾的元素。
  • 例如,vector vec; vec.resize(5); 会将vec的大小调整为5,并将新元素初始化为0。
  1. reserve():
  • reserve()用于为容器预留一定的内存空间,但不会改变容器中元素的数量。
  • reserve()函数只会影响容器的容量,而不会影响其大小。
  • 通过调用reserve()函数,可以避免在向容器中添加元素时多次重新分配内存的开销,提高性能。
  • 例如,vector vec; vec.reserve(10); 会为vec预留10个元素的内存空间,但vec的大小仍然为0。

因此,resize()函数用于改变容器的大小,而reserve()函数用于预留内存空间,但不会改变容器的大小。

0