


C/C++培训
达内IT学院
400-996-5531

功能介绍
C++11提供一了auto类型修饰符,可以根据初始化代码的内容自动判断变量的类型,而不是显式的指定。例如:
auto a1 = 123;
auto a2 = '2';
由于123的类型是int,所以a1的类型就是int,同样的道理,'2'的类型是char,所以a2的类型也是char。
当然了,如果只是用auto代替int或者char那确实没什么了不起,来看下面的代码:
vector<point> v = {{1, 2}, {3, 4}};
vector<point>::iterator it = v.begin();
while(it != v.end()){
cout << (*it).x << "," << (*it).y << endl;
it++;
}
如果实际编过这样的程序,就一定有过这样的经验:不知道如何定义it的类型。C++11中可以使用auto,就像下面这样:
vector<point> 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的代码。
个人觉得,东西虽好,还是要理解了再用。
本文内容转载自网络,本着分享与传播的原则,版权归原作者所有,如有侵权请联系我们进行删除!
填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有