resize
和shrink_to_fit
是C++中用來調整字符串長度的兩個函數(shù),它們之間有一些區(qū)別。
resize
函數(shù)可以用來增加或減少字符串的長度。如果增加長度,新的位置將用默認初始化的字符填充;如果減少長度,超出部分將被截斷。std::string str = "hello";
str.resize(8); // str變?yōu)?quot;hello\0\0\0"
str.resize(3); // str變?yōu)?quot;hel"
shrink_to_fit
函數(shù)可以用來釋放字符串多余的空間,使得字符串的capacity等于size。這樣可以減小內存占用,但可能會導致頻繁的內存重新分配。std::string str = "hello";
str.reserve(100); // 分配了100個字符的空間
str.shrink_to_fit(); // 縮小空間到"hello"的長度
綜上所述,resize
函數(shù)用于改變字符串的長度,而shrink_to_fit
函數(shù)用于釋放多余的空間。在實際使用中,根據(jù)需求選擇合適的函數(shù)來操作字符串的長度。