gpt4 book ai didi

c++ - i++或++ i更适合此程序吗?

转载 作者:行者123 更新时间:2023-12-02 09:48:35 26 4
gpt4 key购买 nike

我正在尝试创建一个程序来检查输入是否为整数或字符串。
这是代码:

// 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com