我正在尝试创建一个程序来检查输入是否为int或字符串。
这是代码:
// 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;
谢谢!
我更喜欢++i
C ++中的形式,因为它i
可能是迭代器或其他带有重载的对象operator++
。在这些情况下,表单会i++
生成一个临时对象来保存的先前值i
,而表单++i
不会。编译器可能会优化掉该临时对象,但这不是必需的,在某些情况下可能不允许这样做。
因此,由于前者无需保留初始值并重新检查它,因此++i
它略胜于i++
后者。它是极少数同时发生时间优化和内存优化的实例之一。但是差异太小了,无法注意到,只有4个字节。而且,时间差可以忽略不计。
在示例中,您基本上会得到相同的答案,但使用时可能会花费一分钟的时间和内存优化++i
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句