C C 程式設計 範圍for語句

2021-10-22 18:55:43 字數 928 閱讀 8117

迴圈最常見的場景是對資料集合的每乙個元素進行某種操作。在c++11之前,大致是這樣的程式:

int a=

;int sum =0;

for(

int i =

0; i <

sizeof

(a)/

sizeof

(a[0])

;++i){

sum +

= a[i]

;}

或者是這樣:

vector<

int> v

;int sum =0;

for(

auto it = v.

begin()

; it != v.

end(

); it++

)

可以看出,雖然目的只是對資料的每個元素進行求和,但還是需要做如下幾件事:

但是還是比較麻煩。c++引入了範圍for語句來簡化這個過程:

int array;

int sum =0;

for(

int a : array)

vector<

int> vect

;int sum =0;

for(

int v: vect)

for(int v : vect)讀作「對於vect中的每乙個v」。應該說,程式簡練了不少。

是不是所有的資料集合都可以交給範圍for遍歷呢?答案是否定的

資料v被範圍for遍歷的條件是:該資料支援v.begin()/v.end()或者是begin(v)/end(v)並返回乙個迭代器。stl中的容器都滿足上面條件,對於內建型別的陣列來講c++編譯器提供了上訴介面的機制,因此也可以在範圍for中使用

範圍for語句

c 11 新標準引入了一種更簡單的for語句,這種語句可以遍歷容器或其他序列的所有元素。範圍for語句 range for statement 的語法形式是 for declaration expression statement expression表示的必須是乙個序列,比如用花括號括起來的初始值...

C C程式設計指南之基本語句

運算子的優先順序 一元運算子 的優先順序高於對應的二元運算子 規則 4 1 1 如果 行中的運算子比較多,用括號確定表示式的操作順序,避免使用預設的優先順序。復合表示式 如a b c 0 存在的理由1 書寫簡潔 2 可以提高編譯效率。規則 4 2 1 不要編寫太複雜的復合表示式。規則 4 2 2 不...

C C程式設計指南之基本語句

運算子的優先順序 一元運算子 的優先順序高於對應的二元運算子 規則 4 1 1 如果 行中的運算子比較多,用括號確定表示式的操作順序,避免使用預設的優先順序。復合表示式 如a b c 0 存在的理由1 書寫簡潔 2 可以提高編譯效率。規則 4 2 1 不要編寫太複雜的復合表示式。規則 4 2 2 不...