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的代码。
个人觉得,东西虽好,还是要理解了再用。
觉得本文有帮助?请分享给更多人。
关注【面向对象思考】,轻松学习每一天!
面向对象设计,面向对象编程,面向对象思考!