如果我有:
#include <string>
std::string myString = "Hello";
Run Code Online (Sandbox Code Playgroud)
然后做任何一个:
myString = "Hello World";
Run Code Online (Sandbox Code Playgroud)
要么
myString+= " World";
Run Code Online (Sandbox Code Playgroud)
我是否有写一些其他记忆的风险?
我是否必须使用字符串函数来添加或更改字符串的大小?
随着std::string,std::string管理自己的记忆完全没问题.
使用c风格的字符串时char*,您需要管理自己的内存.
std string就像vector之类的任何其他容器类一样.它们还具有连续的内存结构,当它们需要额外的空间时,它们只需为自己重新分配内存.
如果您正在使用频繁的字符串更新并且字符串会及时增长,则可以调用string :: reserve()方法为字符串预分配一些内存,以便新插入不会导致大量内存移动