在何处使用std::string
以及在何处使用'\0'
终止的C字符串
基本上我想知道它们之间有什么边缘。
答案 0 :(得分:2)
c ++ std :: string:
总的来说,字符串比char *更安全。通常当你使用char *做事情时,你必须检查事情以确保事情是正确的,在字符串类中所有这些都是为你完成的。 通常在使用char *时,你必须释放你分配的内存,你不必使用string,因为它会在被破坏时释放它的内部缓冲区。 字符串在c ++ stringstream中运行良好,格式化IO很容易。
<强>炭强>
使用char *可让您更好地控制场景背后发生的事情,这意味着您可以根据需要调整性能。
答案 1 :(得分:1)
零终止char *与C接口和std :: string一起使用 - 在常见的c ++代码中。但是没有唯一的选择 - 如果你真的有性能意识,你可能想要编写自己的字符串类(例如没有动态内存分配的固定长度)