在auto循环的情况下,C++的for是如何推断数据类型的--从初始化到条件?
long long n;
cin>>n;
for(auto i=1; i<=n; i++)
cout << ((i * i) * ((i * i) - 1)) / 2 - 2 * (2 * (i - 1) * (i - 2)) << "\n";在这里,i会是long long的整数吗?当我使用auto和使用long long时,我的代码失败(可能是由于输出中的溢出负值,n= 10000)。
发布于 2021-01-05 15:29:26
对于更简单的语句
auto i = 1;很明显,i是int类型,因为1是int类型的文字。它传递到for循环中的声明。C++是非常自我一致的.
停止条件i <= n的类型是一个bool,所以这对您没有多大用处。
如果希望索引类型与n相同,则使用
for (decltype(n) i = 1;在循环开始的时候。
发布于 2021-01-05 15:30:50
C++在for循环情况下如何自动推断数据类型
与所有推导的变量相同:从初始化项。
这里的
,我会是一个长的整数吗?
这将是int。
https://stackoverflow.com/questions/65581727
复制相似问题