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