【发布时间】:2017-05-20 21:09:58
【问题描述】:
我想问一下 编译时,原始字符串是否比普通字符串快。
让我解释一下“原始”和“正常”字符串的含义... 我们知道有一个“R”字面量。
const char * raw = R"(Hello\nWorld!)"; 将输出
Hello\nWorld!
const char * normal = "Hello\nWorld!" 将输出
Hello
World!
那么实际上更快的是什么?我认为将 R-Literal 用于 Hi, how are you? 之类的字符串比我们使用字符串的“正常”方式要快。
【问题讨论】:
-
它们都在编译时被解析。那么您是在询问编译时间或运行时影响吗?
-
我忘了说,我问的是编译时间。我确信 R-literal 在编译时比另一种更快,不是吗?
-
我不这么认为。
-
你为什么在乎?您是否打算将千兆字节的数据放入字符串文字中?
-
原始字符串文字允许您将字符串输入到源代码中,而无需考虑转义序列。它们与程序速度无关。