在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()函數用于預留內存空間,但不會改變容器的大小。