我想问一下编译时时原始字符串是否比普通字符串更快。
让我用“原始”和“正常”字符串来解释我的意思...... 我们知道有一个'R'字面。
const char * raw = R"(Hello\nWorld!)";
将输出
Hello\nWorld!
const char * normal = "Hello\nWorld!"
将输出
Hello
World!
那么什么呢?我认为对Hi, how are you?
之类的字符串使用R-Literal比使用字符串的'正常'方式更快。</ p>
答案 0 :(得分:2)
那么什么呢?我觉得使用R-Literal作为Hi这样的字符串,你好吗?比我们使用字符串的“正常”方式更快。</ p>
好的,因为你要求“normal”或原始字符串文字的编译时间影响,可能是原始字符串文字可以更快地处理,因为编译器不需要处理转义字符解析和翻译。
虽然我认为差异不会很大。
原始字符串文字的主要优点是,在编写源代码时,您无需关心转义特殊字符。
答案 1 :(得分:2)
在特定编译器中解析原始字符串可能会稍微快一些,但差别几乎肯定太小而无法通知。
原始字符串的目的不是为了提高编译速度。这是让你以更易读的方式编写包含许多特殊字符(如反斜杠和引号)的字符串文字,而不必插入大量额外的反斜杠来进行转义。
使用普通的字符串文字,除非你的字符串需要大量的转义,这使得它在源代码中看起来很尴尬。仅针对这些情况使用原始字符串文字。