在 C++ 中,std::string
類提供了 reserve()
方法,用于為字符串預留一定的存儲空間,以提高字符串的性能。當我們知道將要向字符串中添加大量字符時,使用 reserve()
方法可以避免字符串多次重新分配內存,從而提高性能。
下面是 reserve()
方法的詳細解釋:
void reserve(size_type new_cap);
new_cap
:指定要為字符串分配的新存儲空間的大小。使用示例:
#include <iostream>
#include <string>
int main() {
std::string str;
// 預留10個字符的存儲空間
str.reserve(10);
// 添加字符
str += "Hello, World!";
std::cout << "str: " << str << std::endl;
return 0;
}
在上面的例子中,我們首先調用 reserve(10)
方法為字符串 str
預留了 10 個字符的存儲空間。然后我們向字符串中添加了"Hello, World!",由于我們預留了足夠的空間,字符串不會進行內存重新分配,從而提高了性能。
需要注意的是,reserve()
方法僅僅是為字符串分配了足夠的內存空間,但并沒有改變字符串的長度。如果要更新字符串的長度,仍需使用其他方法,如 append()
、insert()
等。