在C++中,resize()和reserve()都是用來調(diào)整容器大小的函數(shù),但是它們的作用和用法略有不同。
- resize():
- resize()用于改變?nèi)萜鞯拇笮。梢栽黾踊驕p少容器中元素的數(shù)量。
- 如果resize()函數(shù)增加容器的大小,它會(huì)在末尾添加新元素,并將新元素的值初始化為默認(rèn)值。
- 如果resize()函數(shù)減少容器的大小,它會(huì)刪除末尾的元素。
- 例如,vector vec; vec.resize(5); 會(huì)將vec的大小調(diào)整為5,并將新元素初始化為0。
- reserve():
- reserve()用于為容器預(yù)留一定的內(nèi)存空間,但不會(huì)改變?nèi)萜髦性氐臄?shù)量。
- reserve()函數(shù)只會(huì)影響容器的容量,而不會(huì)影響其大小。
- 通過調(diào)用reserve()函數(shù),可以避免在向容器中添加元素時(shí)多次重新分配內(nèi)存的開銷,提高性能。
- 例如,vector vec; vec.reserve(10); 會(huì)為vec預(yù)留10個(gè)元素的內(nèi)存空間,但vec的大小仍然為0。
因此,resize()函數(shù)用于改變?nèi)萜鞯拇笮。鴕eserve()函數(shù)用于預(yù)留內(nèi)存空間,但不會(huì)改變?nèi)萜鞯拇笮 ?/p>