一、auto 用在哪 ?
auto用于推断类型,具体可用于声明变量时根据初始化表达式自动推断该变量的类型,也就是可用在for循环。
也可以用于声明函数返回值的占位符。
二、auto 怎么用 ?
1. auto x
for(auto x: arr),这样子只会拷贝一份 arr 中的元素,在循环体中无论怎么修改拷贝的元素的值,是不会影响到原有集合中的元素的值的。
2. auto & x
for(auto &x: arr),这样子相当于获取一份 arr 中的元素的引用,如果修改元素的值,那么原有集合中的元素的值也相应改变。
3. const auto & x
for(const auto &x: arr),这样子也会获取一份 arr 中的元素的引用,但只可以读取元素的值,不可以修改元素的值,效率会比用 auto 更快一些。
最为重要的是,无论以上哪种方式,都不能在循环体中添加或删除元素,这样会直接报错。