在字符串上使用cstring有什么好的方案?

时间:2020-07-09 22:05:02

标签: c++

我现在已经使用C ++进行了许多项目(小型),并且想知道,在什么情况下最好使用cstring而不是字符串?

请澄清一下,我并不是说cstrings很糟糕。我真的很感兴趣,如果它们与C ++中的常规字符串一样重要

2 个答案:

答案 0 :(得分:4)

std::string在运行时为其字符数据分配动态内存(除非std::string实现使用“短字符串优化”并且数据足够短以适合SSO缓冲区)。

因此,您可能想使用C样式字符串的一种情况是,您想传递字符串文字而不为其分配内存。将字符串文字分配给std::string将分配动态内存(如果未使用SSO)。

在某些情况下,您想处理字符数据而又不为提取的子字符串分配新的内存。 C风格的字符串也可以做到这一点(尽管C ++ 17及更高版本中的std::string_view通常对此更好)。

答案 1 :(得分:-1)

字符串只是字符数组,将以空字符终止它们。虽然std :: string是动态分配的。能够进行更多的内存控制;基本上,内存管理是主要优势

相关问题