boost c++ 定義了許多"範圍 (range) "的概念。範圍表現有如受控制的序列 (list),持有容器中的兩點。有序容器是範圍概念的超集 (superset),有序容器中的兩個迭代器 (iterator) 也能定義乙個範圍。這些概念以及操作的演算法,將被併入 c++11 標準程式庫。不過 c++11 將會以語言層次的支援來提供範圍概念的效用。
for 語句將允許簡單的範圍迭代:第一部分定義被用來做範圍迭代的變數,就像被宣告在一般for迴圈的變數一樣,其作用域僅只於迴圈的範圍。而在":"之後的第二區塊,代表將被迭代的範圍。這樣一來,就有了能夠允許c-style陣列被轉換成範圍概念的概念圖。這可以是std::vector,或是其他符合範圍概念的物件。
int my_array[5]=;
for(int& x : my_array)
C 11新標準之範圍for語句
說起for語句,我們都不會陌生,因為在迴圈中經常會用for語句來遍歷一些陣列什麼的,就形如以下的for迴圈,是我們最常見的 for int i 0 i 5 i 範圍for語句可以遍歷容器或者其他序列的所有元素。以下用乙個小小的 測試片段說明一下這個新特性的使用方法 傳統寫法,遍歷每個string型別...
基於範圍的for迴圈 C 11
本篇部落格會寫c 11標準的中的乙個新特性範圍for,並解釋它的使用方法。那麼什麼是範圍for呢?在使用早期c 標準的遍歷乙個陣列,我們會使用這段 void testfor for int i 0 i sizeof array sizeof array 0 i 普通迴圈 for int p arra...
C 11 理解 十三 之 角括號
標準 c 的剖析器一律將 視為右移運算子。但在樣板定義式中,絕大多數的場合其實都代表兩個連續右角括號。為了避免剖析器誤判,撰碼時不能把右角括號連著寫。c 11 變更了剖析器的解讀規則 當遇到連續的右角括號時,優先解析右角括號為樣板引數的退出符號。如果解讀過程中出現普通括號 與 這條規則產生變化 te...