您好,登錄后才能下訂單哦!
這篇文章主要講解了“C++11范圍for語句怎么使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C++11范圍for語句怎么使用”吧!
C++的新風格
如果是10年前,C++語言也好,程序員也好,應該是相當自信的。但是近年來,各種新語言,新架構不斷涌現,C++的地位雖然談不上動搖,但是許多場合被人搶了風頭也是事實。因此C++的代碼風格也在發生改變。今天的范圍for語句就算是一個例子。
功能介紹
循環最常見的的場景就是對數據集合的每一個元素進行某種操作。C++11之前,大致是這樣的程序:
int a[] = {1, 2, 3, 4};
int sum = 0;
for(int i = 0 ; i < sizeof(a)/sizeof(a[0]); ++i){
sum += a[i];
}
或者是這樣
vector<int> v{1, 2, 3,4};
int sum = 0;
for(auto it = v.begin(); it != v.end(); it++){
sum += *it;
}
可以看出,雖然目的雖然只是對數據集合中的每個元素進行求和,還是要做如下幾件事:
定義和初始化循環變量
判斷循環條件
調整循環變量
雖然C++程序員已經熟悉了這些過程,但還是麻煩了一些。大概是因為這個原因,C++11引入了范圍for語句:
nt array[]{1, 2, 3, 4};
int sum = 0;
for(int a : array){
sum += a;
}
vector<int> vect{1, 2, 3, 4};
int sum = 0;
for(int v: vect){
sum += v;
}
for(int v : vect)讀作“對于vect中的每一個v”。應該說,程序簡練了不少。
運用條件
是不是所有地數據集合可以交給范圍for遍歷呢?答案是否定的。
數據v被范圍for遍歷的條件是,該數據支持v.begin()/v.end()或者是begin(v)/end(v)并返回一個迭代器。STL中的容器都滿足上述條件。對于內置類型的數組來講C++編譯器提供了等同于上述接口的機制,因此也可以在范圍for中使用。
感謝各位的閱讀,以上就是“C++11范圍for語句怎么使用”的內容了,經過本文的學習后,相信大家對C++11范圍for語句怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。