【发布时间】:2012-10-03 02:31:17
【问题描述】:
我正在编写代码,该代码从用户那里获取一个数字并以字符串形式以字母形式打印出来。我想知道,有 if 语句,如
if (n < 100) {
// code for 2-digit numbers
} else if (n < 1000) {
// code for 3-digit numbers
} // etc..
或将数字放入字符串中并获取其长度,然后将其作为字符串处理。
代码是用 C++ 编写的。
【问题讨论】:
-
将
boost::lexical_cast用于此类容易出错的任务。在你测量之前不要担心这里的性能。当很明显这会影响速度时,仍然是时候进行优化了。 -
这会快得多,但这是编写代码的一种糟糕方式。仅当您迫切需要更快的速度时才应考虑它。
-
@Jon:你是在暗示转换为
std::string是更好的代码编写方式吗? -
@phresnel:我没有暗示任何事情。我写的就是我的意思,不多也不少。
标签: c++ string performance if-statement string-length