由C++自动推断的类型

autofor循环的情况下,C++ 是如何推断数据类型的——从初始化还是从条件?

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?我的代码失败(可能是由于溢出-输出负值,N = 10000),当我用auto,当我使用过long long

回答

对于更简单的陈述

auto i = 1;

很明显这i是一个int类型,因为1是 type 的文字int。这会延续到for循环内的声明。C++ 是非常自洽的。

停止条件 的类型i <= n是 a ,bool因此对您没有多大用处。

如果您希望索引类型与 相同n,则使用

for (decltype(n) i = 1;

在循环的开始。


以上是由C++自动推断的类型的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>