美文网首页C++程序员C++11新特性
C++11新特性(6)-auto类型修饰符

C++11新特性(6)-auto类型修饰符

作者: 面向对象思考 | 来源:发表于2018-05-31 22:20 被阅读69次

功能介绍

C++11提供一了auto类型修饰符,可以根据初始化代码的内容自动判断变量的类型,而不是显式的指定。例如:

auto a1 = 123;

auto a2 = '2';

由于123的类型是int,所以a1的类型就是int,同样的道理,'2'的类型是char,所以a2的类型也是char。

当然了,如果只是用auto代替int或者char那确实没什么了不起,来看下面的代码:

vector v = {{1, 2}, {3, 4}};

vector::iterator it = v.begin();

 while(it != v.end()){

       cout << (*it).x << "," << (*it).y << endl;

       it++;

 }

如果实际编过这样的程序,就一定有过这样的经验:不知道如何定义it的类型。C++11中可以使用auto,就像下面这样:

vector v = {{1, 2}, {3, 4}};

auto it = v.begin();

 while(it != v.end()){

       cout << (*it).x << "," << (*it).y << endl;

       it++;

 }

注意黄色背景的,其他代码照常。

个人观点

从上面的描述可以看出,auto修饰符确实可以帮程序员做些事情,在某些场景下可以少一些思考。但即使是上面iterator的例子,定义it时虽然不需要指定类型,但是无法想象,在不理解iterator类型的情况下,编写接下来使用it的代码。

个人觉得,东西虽好,还是要理解了再用。


觉得本文有帮助?请分享给更多人。

关注【面向对象思考】,轻松学习每一天!

面向对象设计,面向对象编程,面向对象思考!

相关文章

  • C++11的类型推导详解

    auto & decltype 关于C++11新特性,最先提到的肯定是类型推导,C++11引入了auto和decl...

  • C++11新特性(6)-auto类型修饰符

    功能介绍 C++11提供一了auto类型修饰符,可以根据初始化代码的内容自动判断变量的类型,而不是显式的指定。例如...

  • 【Effective Modern C++】索引

    本书讲述了C++11/14新特性的用法和原理。1. 类型推断01 理解模板类型推断02 理解auto类型推断03 ...

  • 阿里巴巴面试题基础篇 C++11

    ● 请问C++11有哪些新特性? 参考回答: C++11 最常用的新特性如下: auto关键字:编译器可以根据初始...

  • 2021-04-18

    C++11新特性 auto可以从初始化表达式中推断出变量的类型,大大简化编程工作属于编译器特性,不影响最终的机器码...

  • C++11/14/17新特性

    C++11/14/17常用特性 关键字 auto 让编译器根据上下文情况,确定auto变量的真正类型,可以作为函数...

  • C++11中auto和decltype

    C++11中auto和decltype auto和decltype都是C++11中引进来用于自动推断类型的关键字,...

  • C++关键字和符号详解

    很多用法还没接触到,因此本文持续更新 1 .和::和:和-> 辨析 2.auto (C++11新特性) 自动...

  • auto类型推导与const

    auto类型推导规则 C++11中新增了使用auto进行自动类型推断的功能,从此使用容器等复杂类型时,可以简化代码...

  • cppinsights 编译安装

    cppinsights 是一款C++源代码到源代码的转换,它可以把C++中的模板、auto以及C++11新特性展开...

网友评论

    本文标题:C++11新特性(6)-auto类型修饰符

    本文链接:https://www.haomeiwen.com/subject/ujvcsftx.html