resize()
函數用于改變字符串的大小,可以增加或者減少字符串的長度。當增加長度時,新添加的字符會用指定的字符填充;當減少長度時,超出部分的字符會被截斷。示例:
std::string str = "hello";
str.resize(8, '!');
// str = "hello!!!"
reserve()
函數用于預留字符串的存儲空間,但不會改變字符串的長度。這樣做可以減少因為頻繁增加字符而導致的重新分配內存的開銷,提高性能。示例:
std::string str;
str.reserve(10);
// str的存儲空間被預留為10個字符,但實際長度仍為0
總結:
使用resize()
函數會改變字符串的長度,而使用reserve()
函數只是預留了存儲空間,并不改變字符串的長度。