溫馨提示×

C++ string resize與shrink_to_fit比較

c++
小樊
88
2024-07-17 15:52:49
欄目: 編程語言

resizeshrink_to_fit是C++中用來調整字符串長度的兩個函數(shù),它們之間有一些區(qū)別。

  1. 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"
  1. 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ù)來操作字符串的長度。

0