如果我有:
#include <string>
std::string myString = "Hello";
然后做任何一个:
myString = "Hello World";
或
myString+= " World";
我是否有写一些其他记忆的风险? 我是否必须使用字符串函数来添加或更改字符串的大小?
答案 0 :(得分:7)
使用std::string
时,std::string
管理自己的内存就完全没问了。
使用char*
的c风格字符串,您需要管理自己的内存。
答案 1 :(得分:5)
std string就像vector之类的任何其他容器类一样。它们还具有连续的内存结构,当它们需要额外的空间时,它们只需为自己重新分配内存。
如果您正在使用频繁的字符串更新并且字符串会及时增长,则可以调用string :: reserve()方法为字符串预分配一些内存,以便新插入不会导致大量内存移动< / p>
答案 2 :(得分:1)
使用string
可以像处理int
float
等其他原始数据类型一样轻松处理它。
int a = 3;
可以a = 5
或a += 3
无任何伤害
同样适用于
string myString = "Hello";
myString = "Hello World";
myString+= " World";