C++基础auto与范围for

一、auto关键字

1、前言

C++中引入这个关键字,是为了解决一些比较长的类型名称会被使用者记错或者忘记的方法,好比如一些比较长的类型,例如C++中的一个容器“Map”的迭代器,因为Map这个容器是有键值对的,而且还是一个模板类,那么它在显式实例化且不展开std命名空间的时候类型名称不可避免的会很长,如下:

#include<iostream>
#include<map>
using namespace std;
int main
{
std::map<std::string,std::string> map1;
 std::map<std::string,std::string>::iterator it=map1.begin();
 return 0;
}

那如果使用auto,这个关键字的化,我们的书写就会显的更简短与精致:

#include<iostream>
#include<map>
using namespace std;
int main
{
 std::map<std::string,std::string> map1;
 auto::iterator it=map1.begin();
 return 0;
}

2、auto的概念及用法

auto它是就可以自动推演变量的类型的,但是在这之前有一个大前提,那就是必须要有一个初始化的变量,因为auto是通过初始化的变量推导类型的

在这里插入图片描述
用法:
auto 变量名称 +初始化

auto a=10;//这里就会自动推导int
auto b=1.1;//这里就会自动推导浮点型
auto c='abc'//这里就会自动推导char型

3、auto需要注意的地方

1、必须初始化
2、auto在推导指针变量的时候
auto 变量名 和 auto
变量名 的结果是一样的
*
在这里插入图片描述
3、在auto推导应用的时候则不可以省略掉&
4、如果需要在同一行同时auto多个变量,那就需要同一这一行上的所有变量的类型,不可以出现不同的类型

在这里插入图片描述

4、auto禁止使用的场景

1、auto不可以作为函数的参数自动推导
在这里插入图片描述

2、auto不可以用在声明数组
在这里插入图片描述

二、范围for

1、范围for和普通for的区别

当有一个数组或者链表等一些结构需要遍历的时候,经常会用到for循环,在C语言中的for循环,有很多的注意实现,比如说循环的结束点,循环的条件,循环的开始位置等等,当C++导入了范围for之后就不再需要控制前面所述的条件了,它会自动的实现,好比如遍历一个数组:
在这里插入图片描述
这样相比之前的普通的for写起来就会轻松很多!
**语法:**for(auto 迭代对象 :迭代的范围)

2、范围for需要注意的事项

1、范围for必须有一个规定的范围,就好比如上述的遍历数组,数组起始空间就是[0,n-1]
2、范围也是可以用continue和break控制循环的
3、迭代的对象的迭代器需要操作符重载实现++和==(对于自定义类型而言),范围for的底层实际就是迭代器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值