C++11包含一種新的 for 循環,稱為基於范圍的 for 循環,可以簡化對數組元素的遍歷。格式如下:
1 for(Type VarName : Array){ 2 //每個元素的值會依次賦給 VarName 3 }
例如:
1 int array[] = {1, 2, 3, 4}; 2 for(int x : array){ 3 cout << x; 4 } 5 cout << endl;
例子會輸出:1234
定義用於遍歷數組的變量時,可以使用和普通函數參數一樣的修飾符。本例的 x 變量相當於傳值參數。在循環內部更改 x 不會更改數組。但如果用 & 將 x 定義成傳引用,對 x 的修改就會反映到數組中。可以使用 const 修飾符指定變量不能修改。
下例將數組的每個元素加一並輸出。輸出循環用 auto 數據類型自動判斷數組元素的類型。
1 int array[] = {2, 4, 6, 8}; 2 for(int &x : array){ 3 x++; 4 } 5 for(auto x : array){ 6 cout << x; 7 } 8 cout << endl;
輸出結果為:3579