可能重复:
C++ char* vs std::string
使用 char* 代替 std::string 有什么好处吗?
我知道 char* 通常是在堆栈上定义的,所以我们确切地知道我们将使用多少内存,这实际上是他们使用的一个很好的论据吗?还是 std::string 在各方面都更好?
可能重复:
C++ char* vs std::string
使用 char* 代替 std::string 有什么好处吗?
我知道 char* 通常是在堆栈上定义的,所以我们确切地知道我们将使用多少内存,这实际上是他们使用的一个很好的论据吗?还是 std::string 在各方面都更好?
如果您使用 C++ 编写,那么在您遇到的大多数情况下,std::string 会更好。相反,您可能希望使用 char* 的一些情况: -
与旧 C 代码的兼容性(尽管 std::string 的 c_str() 方法处理了大部分)
- 为了节省内存(std::string 可能会有更多开销)
-您想确保知道内存在哪里的情况,例如网络代码或共享内存
当专门处理 C++ 时,std::string 几乎在所有方面都更好。我仍然使用 C 字符串的唯一情况是
显然,每条规则都有例外。例如,如果您要进行大量文本解析,那么使用原始指针到缓冲区可能会更有效,但对于一般字符串摆弄 std::string 是首选。