C++11 关键字auto

在那些情况下要申明类型
定义变量类型
函数返回值,函数参数
表达式返回变量类型

auto关键字原理
在定义变量的时候必须申明类型,c++是强语言类型,在编译阶段需要知道类型,这样的好处是程序效率更高,而动态语言不需要类型申明的需要自推导变量类型。使用了auto是不是c++效率会变慢?完全不是,因为在编译阶段编译器已经帮程序员推导好了变量的类型。前提条件是编译器可以根据当前的程序的状态推导出变量类型。只是编译器更加智能,我猜想编译时间岂不更长了。

auto关键字使用场景

场景一,申明普通变量

auto num = 10;

场景二,函数返回值,如果没有auto,总是要巧那么长的返回值,有了auto关键字后,是不是心里感觉很爽。

vector str_vec; vector::iterator it_old = str_vec.begin(); auto it_new = str_vec.begin();

场景三,申明函数返回值

auto add(int a, int b)->int { return a + b; }

auto使用需要注意的几个问题
1、使用auto关键字的变量必须有初始值,编译器才能推导出变量类型。

2、在传递const变量的时候,使用auto必须自己加const

const int a =10; auto b = a; // b的类型是int const auto c = a; // c 的类型是const int

3、关于很奇葩的函数返回值
auto关键字只能在函数的返回值使用auto关键字,并且在函数尾还需要标注返回类型
这样看起来很奇葩,莫不如不用auto关键字,但我认为委员会的人没这么闲,上google查了下,有下面两条原因:
1、他们认为把返回值放在函数后面更好看(特别是返回值很长的时候)
2、C++14将会把讨人烦得返回值去掉,编译器直接支持自推导。

点击复制链接 与好友分享!回本站首页
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力
上一篇:HDU 2717 Catch That Cow
下一篇:HDU--1876--机器人系列2--DP
相关文章

C++中的 static 关键字

讲解C和C++中const关键字的区别

浅谈C和C++中的const关键字

C++中的explicit关键字使用示例

c++关键字explicit

C++关键字详解整理

C++关键字volatile解析

C++关键字static的用法

C++11老关键字的新含义(auto, using,

C/C++关键字static,const,inline,defi

图文推荐

C++11 关键字auto
ZOJ 3640 Help Me
C++11 关键字auto
CF 518C(Anya and
C++11 关键字auto
hdu 1016 Prime R
UVA - 11987 - A
分类:默认分类 时间:2015-02-27 人气:7
本文关键词:
分享到:

相关文章

Copyright (C) quwantang.com, All Rights Reserved.

趣玩堂 版权所有 京ICP备15002868号

processed in 0.132 (s). 10 q(s)