C++程序员C++11新特性

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

2018-05-31  本文已影响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的代码。

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


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

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

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

上一篇 下一篇

猜你喜欢

热点阅读