【C++基础编程】#025 关键字auto简介

背景

auto是C++中的关键字。

自C++11以来,auto关键字用于两种情况:

  1. 声明变量时根据初始化表达式自动推断该变量的类型
  2. 声明函数时函数返回值的占位符。

简介

auto可以在声明变量时根据变量初始值的类型自动为此变量选择匹配的类型。

举例:对于值x=1;即可以声明:int x = 1long x = 1,也可以直接声明auto x = 1

用法

自动判断被声明变量类型
 auto f=3.14;     				//double
 auto s("hello");  				//const char*
 auto z = new auto(9); 			// int*
 auto x1 = 5, x2 = 5.0, x3='r'; //错误,必须是初始化为同一类型

但是,这么简单的变量声明类型,不建议用auto关键字,而是应更清晰地直接写出其类型

auto关键字更适用于类型冗长复杂、变量使用范围专一时,使程序更清晰易读。

在vector容器中使用
 vector<int> vec; 
 for(auto it = vec.begin(); it != vec.end(); ++it)
 {  
    cin >> *it;      //为vector数组赋值
  }
保存lambda表达式类型的变量声明
auto ptr = [](double x){return x*x;};//类型为std::function<double(double)>函数对象
在模板函数中使用
 template <class T, class U>void Multiply(T t, U u)
 {
      auto v = t * u;
      std::cout<<v;
 }

模板函数的返回类型如果也是依赖于从模板参数推导:

 template <typename _Tx, typename _Ty>
 auto multiply(_Tx v1, _Ty v2) -> decltype( _Tx * _Ty )
 {
     return v1*v2;
 }
 auto result = multiply(101, 1.414); // 结果类型是double

参考资料

https://zh.wikipedia.org/wiki/Auto_(C%2B%2B)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值