我正在尝试创建一个程序来检查输入是否为整数或字符串。
这是代码:
// CPP program to check if a given string
// is a valid integer
#include <iostream>
using namespace std;
// Returns true if s is a number else false
bool isNumber(string s)
{
for (int i = 0; i < s.length(); i++)
if (isdigit(s[i]) == false)
return false;
return true;
}
// Driver code
int main()
{
// Saving the input in a string
string str = "6790";
// Function returns 1 if all elements
// are in range '0-9'
if (isNumber(str))
cout << "Integer";
// Function returns 0 if the input is
// not an integer
else
cout << "String";
}
我想问问i ++或++ i对于此循环是否更好,为什么?for (int i = 0; i < s.length(); i++)
if (isdigit(s[i]) == false)
return false;
谢谢!
最佳答案
我更喜欢C++中的++i
形式,因为i
可能是迭代器或其他带有重载operator++
的对象。在这些情况下,i++
格式会生成一个临时对象来保存i
的先前值,而++i
格式则不会。编译器可能会优化掉该临时对象,但这不是必需的,在某些情况下可能不允许这样做。
因此,++i
略优于i++
,因为前者无需保留初始值并重新检查它。它是极少数同时发生时间优化和内存优化的实例之一。但是差异太小了,无法注意到,只有4个字节。而且,时间差可以忽略不计。
在示例中,您基本上会得到相同的答案,但在使用++i
时可能会花费一分钟的时间和内存优化。
关于c++ - i++或++ i更适合此程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62605887/