基本语法:
for (declaration : expression) {
// loop body
}
用法展示:
遍历数组:
int a[] = {1, 2, 3, 4, 5};
for (int n : a) {
cout << n << " ";
}
cout << endl;
输出:
1 2 3 4 5
遍历向量:
vector<int> v = {5, 4, 3, 2, 1};
for (int n : v) {
cout << n << " ";
}
cout << endl;
输出:
5 4 3 2 1
使用引用(&):
在某些情况下,可能需要修改容器中的元素。这时,可以使用引用来遍历元素:
vector<int> v = {1, 2, 3, 4, 5};
// 使用引用遍历,并修改每个元素
for (int n : v) {
n += 5;
}
// 输出修改后的vector
for (int n : v) {
cout << n << " ";
}
cout << endl;
输出:
6 7 8 9 10
使用常量引用(const xxx&):
如果不需要修改元素,但希望避免不必要的拷贝,可以使用常量引用:
vector<int> v = {1, 2, 3, 4, 5};
// 使用常量引用遍历元素
for (const int& n : v) {
cout << n << " ";
}
cout << endl;
适用的容器:
范围基for循环适用于所有支持begin()
和end()
函数的容器,包括但不限于:
- 数组
vector
list
map
set
unordered_map
- 自定义容器(只要实现了
begin()
和end()
函数)