一、范围for简介
在C++98中遍历一个数组,我们可以使用for循环。但是对于一个有范围的集合,由程序员来说明循环的范围是多余的,由此C++11中引入了基于范围的for循环。
范围for循环后的()由 :分为两部分,第一部分是范围内用来迭代的变量,第二部分是被迭代的范围。
int nums[] = {1,2,3,4,5};
for (auto e : nums)
{
cout << e << " ";
}
想要修改数组中的数据,可以将迭代变量声明为引用类型
int nums[] = {1,2,3,4,5};
for (auto& e : nums)
{
e *= 2;
}
for (auto e : nums)
{
cout << e << " ";//2 4 6 8 10
}
二、范围for的使用条件
范围for循环迭代的迭代的范围必须是确定的。
对于数组而言,范围就是第一个元素到最后一个元素;
对于类而言,应该提供begin和end的方法,begin和end就是范围for循环迭代的范围。