c++11 中新增的基于范围循环,具有自动推导类型的功能,推导出来的变量类型为容器中存储的值得类型。
例如:下面程序中推导出来的b的类型为int
由map中的数据插入方法可知对于map<int,int>类型的容器来说,auto的类型应该是:
注意:不能通过基于范围的for循环变量修改容器内元素的值
如果需要通过该变量修改容器中的值,则需要在for循环声明变量时加引用
此时传递pair<int,int>引用时需注意:pair的第一个参数需要加const(按值传递时不需要)
测试程序输出如下:
可以看到main函数中map的值已经被修改