C++11 中引入的auto关键字

什么是 auto 关键字?

        在 C++11 中,auto 关键字被引入作为一种类型推断的机制(在编译期间执行),它允许编译器自动推断变量的类型。

auto 使用时需要注意的问题:

1、auto 与指针和引用结合使用:

首先说一下 auto 和 auto* 为什么一样,因为在 auto a = &x; 这里 auto 类型推断为 int*,而 auto* b这里的 auto 类型推断就是 int,所以二者效果相同。

对于引用必须加 & ,结合下面这个例子说明一下:修改 c 的时候,x 的值是不会变的,所以类型推断不会是引用,只有加上 & 才是引用,修改 d 的值 x 的值也会变。

2、auto 同一行定义多个变量

同一行定义多个变量,必须是同一个类型,因为编译器只会推导第一个的类型,再根据类型定义推出其他的,如果一行定义了多个类型,编译器就会报错。

3、auto 不能作为函数参数

参数类型是在编译前确定的,auto 是在编译期间执行的。

4、auto 不能直接声明数组

数组名会退回为数组的首地址,这里就和上面的 auto* 类似,所以 auto 不会推断为数组类型,而是 int*,所以不能直接声明数组

重点:auto 特别有用的 4 种情况

1、迭代器:使用 STL 容器时(std::vector,std::map 等)时,迭代器的类型可能会非常复杂。使用  auto 可以简化代码并提高可读性

2、增强 for 循环:在增强 for 循环中,auto 可以自动推断元素的类型,使代码更简洁

3、函数返回类型推断:在 C++14 中,auto 还可以用于推断函数的返回类型

4、泛型编程:在泛型编程中,当类型参数非常复杂或者难以显示指定时,auto 可以简化代码。

总结

auto 关键字在 C++11 中的引入极大地提高了代码的可读性和编写的便捷性,特别是在处理复杂类型、泛型编程以及 STL 容器和算法时,auto 的使用可以显著简化代码

  • 24
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值