Auto是一个C++的关键字(类似于int float)。C++中的auto关键字用于自动推导变量的类型,既这个关键字会跟随他后面变量的初始化来判断到底是什么类型。
以下是一个使用auto关键字的示例代码:
#include <iostream>
using namespace std;
int main() {
auto x = 10; // 变量x的类型被自动推导为int
auto y = 3.14; // 变量y的类型被自动推导为double
std::cout << "x = " << x << std::endl;
std::cout << "y = " << y << std::endl;
return 0;
}
在以上示例中,使用auto关键字定义了两个变量x和y,它们的类型分别被自动推导为int和double。
以上代码同等于↓
int x=10;
double y=3.14;
那么既然可以用int,char,float定义类型,为什么要用auto呢?
使用auto的原因有12:
- 安全。auto声明的变量,其类型推导自初始化物,所以它们必须被初始化,避免了未初始化引起的bug。 比如求数组中的最大值,定义ans,ans需先赋值INT_MIN(可以理解为极小数),不然会出错。
- 精确。使用auto可以避免类型错误,如std::map键是const,存储的是std::pair<const std::string, int>,使用auto可以精确表达类型。
- 简洁。使用auto可以减少代码量,使代码更简洁。 比如x的范围是0<=x<=2^64-1,如果定义为int会溢出。这么大范围需要用unsigned long long。如果程序里多次出现unsigned long long,未免太过冗长。
- 未知类型。当不知道表达式的准确类型时,可以使用auto。
写作不易,如果看懂了,能不能留个赞??