基於範圍的for迴圈(C++11)
阿新 • • 發佈:2018-12-21
1、基於範圍的for迴圈(C++11)
for 語句允許簡單的範圍迭代:
int my_array[5] = {1, 2, 3, 4, 5};
// 每個陣列元素乘於 2
for (int &x : my_array)
{
x *= 2;
cout << x << endl;
}
// auto 型別也是 C++11 新標準中的,用來自動獲取變數的型別
for (auto &x : my_array) {
x *= 2;
cout << x << endl;
}
上面for述句的第一部分定義被用來做範圍迭代的變數,就像被宣告在一般for迴圈的變數一樣,其作用域僅只於迴圈的範圍。而在":"之後的第二區塊,代表將被迭代的範圍。
例項:
#include<iostream> #include<string> #include<cctype> using namespace std; int main() { string str("some string"); // range for 語句 for(auto &c : str) { c = toupper(c); } cout << str << endl; return 0; }
上面的程式使用Range for語句遍歷一個字串,並將所有字元全部變為大寫,然後輸出結果為:
SOME STRING