静态常量的std :: string vs char数组

色拉茹

我想在cpp文件的多个位置使用字符串常量。我应该使用std :: string还是char []?

static const std::string kConstantString = "ConstantStringValue";

static const char kConstantString[] = "ConstantStringValue";

有人告诉我更喜欢后者,因为它“避免了静态分配”。char数组也不必静态分配吗?

小狗

是的,是的,它也必须静态分配。

std::string除非您的分析器告诉您,值得像那样的遗忘废话,否则请务必使用const char[]选择const char[]是一个烦人的微优化过程,std::string也是一个愚蠢的决定,除非您确定该代码段是热路径(因为无论哪种方式都是静态的,我都对此表示高度怀疑)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

sprintf和char vs std :: string数组

std :: string vs char [] vs char *

如何访问std :: string中的char数组?

在std :: string或char数组中间使用NULL char更新

静态const std :: map <string,int> vs if-elseif

初始化并使用C ++ std :: string作为char数组

如何将char *数组转换为std :: string

静态常量表达式VS 2015内部编译器错误const char * a [] = {“ foo”,“ bar”}

char Vs的指针数组int的指针数组

libmicrohttpd在html响应中发送垃圾(const char * vs std :: string.data())

C ++:使用委托构造函数时选择`const char *`vs`std :: string`

为类成员返回const std :: string&vs const char *

在VS中更改常量char *文字的元素

如何声明静态常量数组

Haskell中的String vs Char不匹配

如何通过char数组搜索String数组?

将空终止的char数组复制到std :: string并考虑缓冲区长度

以拥有的方式从动态分配的 char 数组构造 `std::string`

将char数组传递给需要const std :: string参考的函数

为什么std :: u16string比char16_t数组慢?

无法检索静态char *数组

从C到C ++的常量结构中char数组的静态初始化

从内部使用静态std :: string的函数返回const char *是否安全?

std :: array vs数组性能

经典数组vs std :: array

C中的静态const char * VS const char *

“const std::string &getStr” vs “std::string getStr”

从类型'std :: basic_string <char>的右值对类型'std :: string&的非常量引用进行了无效的初始化

c ++字符串vs vector <char> vs动态数组