当我转换一个char*
to std::string
使用构造函数:
char *ps = "Hello";
std::string str(ps);
我知道 std 容器在被要求存储值时倾向于复制值。
是复制整个字符串还是仅复制指针?
如果之后我这样做str = "Bye"
这会改变 ps 指向“再见”吗?
std::string
对象将分配内部缓冲区并复制指向的字符串ps
那里。对该字符串的更改不会反映到ps
缓冲区,反之亦然。这就是所谓的“深复制”。如果只复制指针本身而不复制内存内容,则称为“浅复制”。
重申一下:std::string
在这种情况下执行深复制。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)