1.介紹
????????C++11標準之前,使用for循環遍歷數組或容器,只能使用以下結構:
for(表達式1;表達式2;表達式3){
循環體
}
????????那么在C++11標準中,除了上面的方法外,又引入了一種全新的語法結構,如下所示。
for(declaration:expression){
循環體
}
????????declaration:此處定義一個變量,類型為要遍歷序列中元素的類型。(這里可以使用auto自動推導)。
????????expression:表示要遍歷的序列,常見的例如數組或容器。
#include <iostream>
using namespace std;int num2[5] = {1, 2, 3, 4, 5};
int main() {for (int num : num2) {cout << num << " ";}return 0;
}
2.兩種遍歷方式的異同
相同點:
????????兩種遍歷方式都是實現對元素進行逐個訪問和處理。
不同點:
????????(1)傳統的for循環語法結構相對復雜,范圍for循環語法更加簡潔。
????????(2)傳統for循環靈活性更高,能用于更加廣泛的場景,實現更加復雜的循環邏輯。范圍for循環主要用于簡單的序列遍歷,其設計初衷就是為了簡化常規的遍歷操作。(因為用的最多)
????????(3)在遍歷容器時,傳統for循環需要使用迭代器訪問元素,范圍for循環則隱藏了迭代器的細節,直接將容器值賦給變量,使代碼更簡潔,但也限制了對迭代過程的直接控制。
????????(4)范圍for循環的代碼可讀性與簡潔性更好。
3.總結
在實際使用中,范圍for循環常用于簡單序列遍歷,傳統for循環則在處理復雜循環邏輯或直接控制迭代器等方面具有更大優勢。可以根據情況選擇合適的循環方式。