C++11使用auto关键字进行基于范围的for循环,引用符号&的作用
对于内置数组以及包含方法 begin() 和 end() 的类(如std::string)和STL容器,基于范围的for循环可简化为它们编写循环的工作。······一种更容易、更安全的方式是,使用auto来声明x,这样编译器将根据prices声明中的信息来推断x的类型:
double prices[5] = { 4.99, 10.99, 6.87, 7.99, 8.49}; for(auto x:prices) std::cout << x << std::endl;
如果要在循环中修改数组或容器的每个元素,可使用引用类型:
std::vector<int> vi(6); for(auto & x: vi) x = std::rand();
以上摘抄自:《C++ Primer Plus(第6版)中文版》 18.1.8 第一小节