範圍 for 迴圈增強
來講個比較小範圍的增強吧,c++20 支援 for 迴圈的初始化語句(init-statements)和初始值設定項(initializers)
直接看 code 吧!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <vector>
int main() {
// 使用範圍 for 迴圈進行初始化語句
for (std::vector<int> vec = {1, 2, 3, 4, 5}; int n : vec) {
std::cout << n << " ";
}
std::cout << std::endl;
// 使用範圍 for 迴圈進行變量初始化
int totalSum = 0;
for (int sum = 0; int i : {1, 2, 3, 4, 5}) {
sum += i;
totalSum += sum;
std::cout << "當前的和: " << sum << ", 總和: " << totalSum << std::endl;
}
return 0;
}
解釋: 向量初始化:
for (std::vector
for (int sum = 0; int i : {1, 2, 3, 4, 5}) 中,sum 在迴圈頭部初始化。 int i : {1, 2, 3, 4, 5} 用於遍歷初始化列表 {1, 2, 3, 4, 5} 中的每個元素。 在迴圈體中,sum 的值在每次迭代中更新,並且總和 totalSum 也在每次迭代中更新。
好處
這種增強使得範圍 for 迴圈不僅能方便地遍歷集合,還能在迴圈頭部進行初始化操作,使代碼更加簡潔和易讀。

