【发布时间】:2019-07-22 00:10:05
【问题描述】:
我必须为 regex_search 使用匹配结果的后缀。我拥有的字符串大约有百万行,仅将其分配给临时字符串平均需要 30 毫秒。 如果我不使用 .str(),即使这样,程序也可以正常工作,平均需要 30 毫秒。使用时间参考只是为了比较。
regex_search(input, match, re);
tempStr = match.suffix().str();
如果时间(毫秒)没有显着差异,请告诉我 .str() 的用途。
【问题讨论】:
-
请发布您用于构建程序的编译标志。如果您正在计时未优化或“调试”构建,那么您显示的计时是没有意义的。
-
@PaulMcKenzie 我正在使用 Visual Studio,很抱歉我不知道如何在其中设置编译标志。忽略时间,你能告诉我 .str() 的用途吗?提前致谢。
-
您是在计时“发布”构建还是“调试”构建?如果它是一个“调试”版本,那么停止你正在做的事情并构建一个发布版本和时间。
-
您的意思是使用 .str() 是否有任何影响,或者在发布版本中百万行不会花费 30 毫秒?
-
请运行发布版本。在你这样做之前,这个问题毫无价值。这就是我要说的。关于 SO 有很多问题,其中的问题是“为什么做 x 慢?”,事实证明,提出问题的人正在运行未优化的构建。运行优化的构建后,时间就会“更正”,因此问题会关闭、删除等。