C++Int有效地字符串

C++ Int to String Efficiently

本文关键字:字符串 有效地 C++Int      更新时间:2023-10-16

这是将int转换为string的有效方法吗?

int(int input) {
int myNumber = input;
string myString = "";
while (myNumber > 0) {
myString += char(myNumber % 10 + 48);
myNumber /= 10;
}
//reverse
string result = "";
for (int i = myString.size() - 1; i >= 0; i--) {
result += myString[i];
}
return result;
}

如果没有,有没有更有效的方法可以在不使用任何额外库的情况下做到这一点?

长期以来,

C++在标准库中有一个函数可以做到这一点。它是to_string

例如,您可以按照以下方式进行操作:

int a;
std::cin >> a;
std::string aStr = std::to_string(a);

如果可能的话,您应该始终尝试使用现有的函数。原因有很多:

  1. 效率。可能存在比标准库实现中使用的方法更有效的方法。然而,你经常会发现,通过优化代码的一部分,你实际上在另一个方面失去了效率。STL的开发人员试图平衡所有方面
  2. 错误倾向。你几乎可以保证你的代码中会有更多的bug,然后存在于STL的实现中
  3. 与其他代码的互操作性。如今,我们很少写一些自己使用的东西。大多数时候,我们想要的代码实际上可以与系统的另一部分一起工作。编写自己的标准函数实现可以很容易地破坏整个系统
  4. 未来的改进。随着标准的成熟,如果您使用标准函数,您的代码将开始更好地工作。但如果你用自己的。。。那么谁知道会发生什么呢