這篇文章主要講解了“C++11范圍for語句怎么使用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C++11范圍for語句怎么使用”吧!
創(chuàng)新互聯(lián)一直在為企業(yè)提供服務(wù),多年的磨煉,使我們在創(chuàng)意設(shè)計(jì),營銷型網(wǎng)站到技術(shù)研發(fā)擁有了開發(fā)經(jīng)驗(yàn)。我們擅長傾聽企業(yè)需求,挖掘用戶對產(chǎn)品需求服務(wù)價(jià)值,為企業(yè)制作有用的創(chuàng)意設(shè)計(jì)體驗(yàn)。核心團(tuán)隊(duì)擁有超過10多年以上行業(yè)經(jīng)驗(yàn),涵蓋創(chuàng)意,策化,開發(fā)等專業(yè)領(lǐng)域,公司涉及領(lǐng)域有基礎(chǔ)互聯(lián)網(wǎng)服務(wù)內(nèi)江服務(wù)器托管、重慶APP開發(fā)、手機(jī)移動建站、網(wǎng)頁設(shè)計(jì)、網(wǎng)絡(luò)整合營銷。
C++的新風(fēng)格
如果是10年前,C++語言也好,程序員也好,應(yīng)該是相當(dāng)自信的。但是近年來,各種新語言,新架構(gòu)不斷涌現(xiàn),C++的地位雖然談不上動搖,但是許多場合被人搶了風(fēng)頭也是事實(shí)。因此C++的代碼風(fēng)格也在發(fā)生改變。今天的范圍for語句就算是一個例子。
功能介紹
循環(huán)最常見的的場景就是對數(shù)據(jù)集合的每一個元素進(jìn)行某種操作。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 sum = 0;
for(auto it = v.begin(); it != v.end(); it++){
sum += *it;
}
可以看出,雖然目的雖然只是對數(shù)據(jù)集合中的每個元素進(jìn)行求和,還是要做如下幾件事:
定義和初始化循環(huán)變量
判斷循環(huán)條件
調(diào)整循環(huán)變量
雖然C++程序員已經(jīng)熟悉了這些過程,但還是麻煩了一些。大概是因?yàn)檫@個原因,C++11引入了范圍for語句:
nt array[]{1, 2, 3, 4};
int sum = 0;
for(int a : array){
sum += a;
}
vector
int sum = 0;
for(int v: vect){
sum += v;
}
for(int v : vect)讀作“對于vect中的每一個v”。應(yīng)該說,程序簡練了不少。
運(yùn)用條件
是不是所有地?cái)?shù)據(jù)集合可以交給范圍for遍歷呢?答案是否定的。
數(shù)據(jù)v被范圍for遍歷的條件是,該數(shù)據(jù)支持v.begin()/v.end()或者是begin(v)/end(v)并返回一個迭代器。STL中的容器都滿足上述條件。對于內(nèi)置類型的數(shù)組來講C++編譯器提供了等同于上述接口的機(jī)制,因此也可以在范圍for中使用。
感謝各位的閱讀,以上就是“C++11范圍for語句怎么使用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對C++11范圍for語句怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!