C++11 auto的应用

9 篇文章 0 订阅

auto 自动类型推导

C++11之前和c语言 auto用来声明变量的存储类型(自动变量 栈区)
在编译期间 编译器能够根据变量或者表达式推导七类型
auto 与 const 时:
	普通数据在推导时const属性会被抛弃
	但是指针或者引用有const时 自动推导时不会抛弃

auto的限制:

	1.不能用于函数的参数列表
	2.auto不能作用于类的非静态成员
	3.auto 关键字不能定义数组
	4.auto不能作用于模板参数
auto的应用
	1.for循环
	for(auto& var:container)
	{


	}	
	为自己写的
	2.接收函数返回值  如果调用一个函数返回值类型可能有多个
	3.定义容器迭代器
	4.用于泛型编程

新式for循环
	底层原理是新式迭代器    只要对象支持迭代器的功能 可以用for循环
	for(类型)

auto用法

上面举的这个例子很简单,在真正编程的时候也不建议这样来使用auto,直接写出变量的类型更加清晰易懂。下面列举auto关键字的正确用法。

用于代替冗长复杂、变量使用范围专一的变量声明。
想象一下在没有auto的时候,我们操作标准库时经常需要这样:

#include<string>
#include<vector>
int main()
{
    std::vector<std::string> vs;
    for (std::vector<std::string>::iterator i = vs.begin(); i != vs.end(); i++)
    {
        //...
    }
}

这样看代码写代码实在烦得很。有人可能会说为何不直接使用using namespace std,这样代码可以短一点。

#include<string>
#include<vector>
int main()
{
    std::vector<std::string> vs;
    for (auto i = vs.begin(); i != vs.end(); i++)
    {
        //..
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HOVL_C++

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值