C++11新增了一種循環:基於范圍的for循環。這簡化了一種常見的循環任務:對數組(或容器類,如vector和array)的每個元素執行相同的操作,如下例所示
for語句允許簡單的范圍迭代:(只遍歷,不修改)
int arrayData[] = {1, 2, 3, 4, 5}; for(int x : arrayData) cout << x << " "; cout << endl; string str("some string.");
// auto 類型也是 C++11 新標准中的,用來自動獲取變量的類型 for(auto c : str) cout << c << " "; cout << endl;
其中,x最初表示數組arrayData的第一個元素。顯示第一個元素,不斷執行循環,而x依次表示數組的其他元素。因此,上述代碼顯示全部的5個元素。總之,該循環顯示數組中的每個值。
auto 類型也是 C++11 新標准中的,用來自動獲取變量的類型。
要修改數組的元素,需要使用不同的循環變量語法:(邊遍歷,邊修改)
int arrayData[] = {1, 2, 3, 4, 5}; for(int &x : arrayData) { x++; cout << x << " "; } cout << endl; string str("some string."); for(auto &c : str) { c = toupper(c); cout << c << " "; } cout << endl;
上述的程序使用for語句遍歷arrayData數組,每個數組元素乘2;使用for語句遍歷一個字符串,並將所有字符全部變為大寫;
參考鏈接: