美文网首页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新特性(6)-auto类型修饰符

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