C++11新标准引入了一种更简单的for语句,这种语句可以遍历容器或者其他序列的所有元素。范围for语句的语法形式是:
for( declaration : expression) statement
expression表示的必须是一个序列,序列中的每个元素都能转换成该变量的类型。确保该类型相容最简单的方法就是使用auto类型说明符,这个关键字可以令编译器帮助我们指定合适的类型。如果需要对序列中的元素执行写操作,循环变量必须声明成引用类型。
每次迭代都会重新定义循环控制变量,并将其初始化成序列中的下一个值,之后才会执行statement。
示例:
vector<int> v = {0,1,2,3,4,5}; // 范围变量必须是引用类型,这样才能对元素执行写操作 for( auto &r : v ) r *= 2;
时间: 2024-10-13 18:32:09