范圍 for 循環
??在C++中,范圍for循環(也稱為基于范圍的for循環)是一種簡潔的方法來遍歷容器(如數組、向量、列表等)中的元素。它自動處理迭代器,使得代碼更加易讀和簡潔。范圍for循環的基本語法如下:
for (declaration : collection) {
statement
}
這里,declaration是一個在每次迭代中用于訪問容器元素的變量,collection是你要遍歷的容器。statement是每次迭代時要執行的語句。
示例1:遍歷數組
#include <iostream>
int main() {
int arr[] = {1, 2, 3, 4, 5};
for (int &x : arr) { // 使用引用可以修改數組元素
x *= 2; // 將每個元素乘以2
}
for (int x : arr) { // 再次遍歷以查看結果
std::cout << x << " ";
}
std::cout << std::endl;
return 0;
}
示例2:遍歷向量(vector)
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {10, 20, 30, 40, 50};
for (int x : vec) {
std::cout << x << " ";
}
std::cout << std::endl;
return 0;
}
示例3:遍歷字符串(string)
#include <iostream>
#include <string>
int main() {
std::string str = "Hello";
for (char c : str) {
std::cout << c << " ";
}
std::cout << std::endl;
return 0;
}
注意事項:
(1)修改元素:如果你需要在循環中修改容器中的元素,你應該使用引用(例如 int &x 或 char &c)。如果不使用引用,你將無法修改原始容器中的元素。
(2)范圍for循環的限制:范圍for循環只能用于容器,而不能直接用于原始數組以外的其他類型,例如原生指針數組或自定義容器(除非它們支持迭代器)。對于原生指針數組,可以使用基于范圍的for循環與標準庫中的begin()和end()函數配合使用,例如:for (auto &x : std::vector<int*>(arr, arr + N))。
(3)性能考慮:雖然范圍for循環使得代碼更易讀,但在性能敏感的場景下,可能需要手動使用迭代器來優化性能。例如,在某些情況下,手動控制迭代器的生命周期可能會帶來性能上的優勢。然而,對于大多數日常編程任務,范圍for循環的性能開銷是可以接受的。
??通過使用范圍for循環,你可以以非常直觀和簡潔的方式處理容器中的元素,使得代碼更加清晰和易于維護。
學習參考:
1、范圍 for 循環 (C++11 引入)
2、范圍 for 循環(Range-based for loop)
3、C++ 范圍 for 循環詳解

浙公網安備 33010602011771號