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