C++中auto关键字和for循环使用详解——for (auto a:b)

编程时常常需要把表达式的值赋给变量,这就要求在声明变量的时候清楚地知道表达式的类型。

C++中。的auto关键字是一个类型说明符,通过变量的初始值或者表达式中参与运算的数据类型来推断变量的类型。C++11新标准引入了auto 类型说明符,让编译器去分析表达式的类型。和原来那些只对应一种特定类型的说明符(比如double)不同,auto让编译器通过初始值来推算变量的类型。显然,auto定义的变量必须有初始值(与C语言中的auto定义变量不一样)例如:

//由val1和val2相加的结果可以推断出item的类型
auto item = val1 + val2;//item初始化为val1和val2相加的结果

     使用auto也能在一条语句中声明多个变量。因为一条语句声明时只能有一种基本数据类型,所以该语句中的所有变量初始基本数据类型必须一样,例如:

auto i = 0, *p = &i;        //正确:i是整数、p是整形指针
auto sz = 0, pi = 3, 14;    //错误:sz和pi的类型不一致

另外:在范围for语句中,经常会使用到auto关键字,常用的两种方式

for( auto a:b)for( auto  &a:b)的区别如下

#include<iostream>
using  namespace  std;
int  main()
{
     string  s( "hello world" );
     for (auto c:s)
     c= 't' ;
     cout<<s<<endl; //结果为hello world
     for (auto &c:s)
     c= 't' ;
     cout<<s<<endl;  //结果为ttttttttttt
}

for(auto a:b)中b为一个容器,效果是利用a遍历并获得b容器中的每一个值,但是a无法影响到b容器中的元素。

for(auto &a:b)中加了引用符号,可以对容器中的内容进行赋值,即可通过对a赋值来做到容器b的内容填充。



参考文章:https://blog.csdn.net/LiuBo_01/article/details/80752734

                  https://blog.csdn.net/weixin_40710375/article/details/80606062?

                  https://blog.csdn.net/qq_33651375/article/details/100132884?

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值