auto类型,主要用于自动类型的推导。
在我们的程序中使用该关键字,编译器会在编译阶段自动推导该变量的类型。
auto的主要作用体现在c++的泛型编程。
即当我们不知道变量是什么类型或者我们不希望指定具体类型的时候使用它。
eg:auto path="C:\\Program Files"; ----auto就是string类型
注:在我们使用auto关键字时,我们必须立即初始化
eg: int n=10;
auto *p=&n; ----auto是int类型
注:当右边表达式为引用类型时,auto会抛弃引用,得到原始的数据类型
eg: //定义一个map容器
Map<qint64, QProcess*> map_test;
//使用迭代器进行查询
for (auto iter = map_test.begin(); iter != map_test.end(); ++iter)
{
XXX;
}
注:在for循环中,++i和i++都是在等代码块执行完以后才执行的,但是++i的性能更好,尤其是在我们使用迭代器的时候。省去了对内存的操作,提高了性能。
eg:auto str[]=url; ----auto不能定义数组,这种写法是错误的
当auto与const相结合
当等号右边有const属性的时候,const属性将会被抛弃
如果const和引用相结合,那么将会保留const类型