c++primer之范围for循环

传统的for语句其实比较熟悉了,在C++11新标准中引入了一种更简单的for语句,这种语句可以遍历容器或其他序列的所有元素。

范围for语句的语法形式:
for(delaration : expression)
    statement

其中expression必须是一个序列,比如用花括号括起来的初始值列表、数组、或者vector或string等类型的对象,这些类型的共同特点是拥有能返回迭代器的begin和end成员。
delaration定义是一个变量,序列中的每一个元素都得能转换成该变量的类型。确保类型相融最简单的方法是使用auto类型说明符。
每次迭代都会重新定义循环控制变量,并将其初始化成序列中的下一个值,之后才会执行statement。
statement语句可以是单独的语句,也可以是一个块。

例:

vector<int> v = {0,1,2,3,4,5,6,7,8,9};
// 范围for循环必须是引用类型,这样才能对元素执行写操作
for (auto &r : v)  //对v中每一个元素
     r *= 2;    //将v中每一个元素的值翻倍
     // 因为想修改v的元素的值,因此将r声明成引用类型。

你可能感兴趣的:(c++学习)