基於範圍的for迴圈

2021-10-18 04:34:29 字數 1299 閱讀 5927

在乙個範圍上執行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 的語言...