Sub*_*way 14 c++ string constructor stdstring
当我转换char*为std::string使用构造函数时:
char *ps = "Hello";
std::string str(ps);
Run Code Online (Sandbox Code Playgroud)
我知道std容器在被要求存储时往往会复制值.是复制整个字符串还是仅指针?如果事后我str = "Bye"会改变ps指向"再见"吗?
Vio*_*ffe 27
std::stringobject将分配内部缓冲区并将复制ps那里指向的字符串.对该字符串的更改不会反映到ps缓冲区,反之亦然.它被称为"深层复制".如果仅复制指针本身而不复制存储器内容,则将其称为"浅拷贝".
重申:std::string在这种情况下执行深层复制.