当前位置: 首页 > 科技观察

不想写表达式的类型?试试auto

时间:2023-03-21 14:30:11 科技观察

你觉得我说的自动变量类型是auto吗?不,我们知道在C语言中其实是有auto关键字的。它与早期C++中的auto关键字相同。它修饰局部变量,意思是自动存储期,但是因为这是默认的,所以我们经常看不到这样的写法:autointa=10;本文要介绍的不是上面的auto,而是C++11中引入的auto关键字。看看下面这段代码的效果:#include#includeintmain(){std::vectorvec{1,2,3,4,5};for(std::vector::const_iteratorit=vec.begin();it!=vec.end();++it){std::cout<<*it<#includeintmain(){std::vectorvec{1,2,3,4,5};for(autoit=vec.begin();it!=vec.end();++it){std::cout<<*it<vec;autosize=vec.size();是的,它是std::vector::size_type。你绝对不想把它写下来。但是下面是无法推导的:vectoraa;//vectorbb=aa;//无法推导模板类型下面的程序帮你查一下真实类型的名称,仅供参考:#include#include#include#includeintmain(){intstatus;char*realname;autotype=1.1;realname=abi::__cxa_demangle(typeid(type).name(),0,0,&status);std::cout<"<