Auto是C ++继承自C的关键字,该关键字几乎永远存在,但从未使用过。随着auto的引入,所有这些都发生了变化,从C ++ 11的上下文中进行了类型推导。在C ++ 11之前,需要在编译时显式声明每种数据类型,从而在运行时限制表达式的值,但是在新版本的C ++之后,包含了许多关键字,这些关键字使程序员可以将类型推导留给编译器本身。
借助类型推断功能,我们可以花更少的时间写出编译器已经知道的内容。由于仅在编译器阶段推导所有类型,因此编译时间会稍微增加,但不会影响程序的运行时间。
auto关键字指定将从声明的初始值设定项中自动推断出开始声明的变量的类型,对于函数,如果其返回类型为auto,则将在运行时由返回类型表达式求值。
#include<iostream> #incllude<vector> using namespace std; int main() { vector<int> vec(10); // Auto deduce type to be iterator of a vector of ints. for(auto it = vec.begin(); it != vec.end(); vec ++) { cin >> *it; } return 0; }