在乙個範圍上執行for迴圈
用作對範圍中的各個值(如容器中的所有元素)進行操作的傳統for迴圈更加可讀的等價版本
屬性(可選) for (範圍宣告: 範圍表示式) 迴圈語句
上述語法產生的**等價於下列**(__range, __begin和__end僅用域闡釋)
}
對範圍表示式求值以確定要迭代的序列或範圍. 依次對序列的每個元素進行解引用, 並賦值給具有範圍宣告中所給定的型別和名字的變數.
首表示式與尾表示式定義如下:
#include
#include
intmain()
;for
(const
int& i : v)
// 以 const 引用訪問
std::cout << i <<
' ';
std::cout <<
'\n'
;for
(auto i : v)
// 以值訪問,i 的型別是 int
std::cout << i <<
' ';
std::cout <<
'\n'
;for
(auto
& i : v)
// 以引用訪問,i 的型別是 int&
std::cout << i <<
' ';
std::cout <<
'\n'
;for
(int n :
)// 初始化器可以是花括號初始化器列表
std::cout << n <<
' ';
std::cout <<
'\n'
;int a=
;for
(int n : a)
// 初始化器可以是陣列
std::cout << n <<
' ';
std::cout <<
'\n'
;for
(int n : a)
std::cout <<
1<<
' ';
// 不必使用迴圈變數
std::cout <<
'\n'
;}
輸出:
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
1 1 1 1 1 1
基於範圍的for迴圈
1.範圍for的語法 在c 98中如果要遍歷乙個陣列,可以按照以下方式進行 void testfor for int i 0 i sizeof array sizeof array 0 i array i 2 for int p array p array sizeof array sizeof a...
基於範圍的迴圈
do.while 和 while 都不能進行基於範圍的迴圈,只能用for 語句。語法 for 元素名變數 廣義集合 元素名變數 可以是引用型別,以便直接修改集合元素的值,也可以是const型別,避免迴圈體修改元素的值 include include intmain 不能用 auto a std ar...
使用基於範圍的 for 迴圈迭代範圍
許多程式語言支援 for 迴圈的稱之為 for each 的變體,即針對集合中的元素重複一組語句。在 c 11 之前 c 沒有相應的核心語言支援。最接近的特性是來自標準庫中的被稱為 std for each 的通用演算法,它在範圍的所有元素上應用乙個函式。c 11 帶來了對 for each 的語言...