5

如果我有:

#include <string>

std::string myString = "Hello";

然后执行以下任一操作:

myString = "Hello World";

或者

myString+= " World";

我是否有重写其他记忆的风险?
我是否必须使用字符串函数来添加或更改字符串的大小?

4

3 回答 3

7

使用std::string,这完全可以std::string管理自己的内存。

使用 c 风格的字符串 using char*,您需要管理自己的内存。

于 2013-04-11T08:32:37.570 回答
5

std 字符串就像任何其他容器类一样,如 vector。它们还具有连续的内存结构,当它们需要额外空间时,它们只需为自己重新分配内存。

如果您正在处理频繁的字符串更新并且您的字符串会及时增长,您可以调用 string::reserve() 方法为您的字符串预分配一些内存,以便新插入不会导致大量内存移动

于 2013-04-11T08:39:32.603 回答
1

Usingstring让您可以像其他原始数据类型一样处理它int float

int a = 3;可以造成a = 5a += 3不造成任何伤害

同样适用

string myString = "Hello";

myString = "Hello World";

myString+= " World";
于 2013-04-11T08:36:20.900 回答