在C++11中引入了auto
关键字,用于自动推导变量的类型。其语法形式为auto 变量名 = 表达式;
,其中表达式
的类型将被自动推导为变量名
的类型。
auto
的使用可以简化代码,避免重复声明变量类型,并且可以处理复杂的类型推导,例如使用迭代器遍历容器中的元素或者函数返回值类型不确定的情况。
下面是一些示例代码来演示auto
的用法:
// 使用auto进行变量类型推导
auto num = 10; // 推导为int类型
auto name = "Alice"; // 推导为const char*类型
auto result = 3.14 + 2; // 推导为double类型
// 使用auto遍历容器中的元素
std::vector<int> numbers = {1, 2, 3, 4, 5};
for(auto it = numbers.begin(); it != numbers.end(); ++it) {
std::cout << *it << " ";
}
// 输出:1 2 3 4 5
// 使用auto推导函数返回值类型
auto add(int a, int b) -> int {
return a + b;
}
auto divide(double a, double b) -> decltype(a / b) {
return a / b;
}
需要注意的是,auto
只能在定义变量时使用,无法用于函数参数、类的成员变量等地方。并且在使用auto
推导变量类型时,需要确保表达式的类型是明确的,否则编译器将无法推导出正确的类型。