c 語言中的遍歷

2021-09-08 22:42:37 字數 1629 閱讀 8090

隨著c++11標準的出現,c++標準新增了許多有用的特性,c++**的寫法也有比較多的變化。

vector是經常要使用到的std元件,對於vector的遍歷,本文羅列了若干種寫法。

(注:本文中**為c++11標準的**,需要在較新的編譯器中編譯執行)

假設有這樣的乙個vector:(注意,這種列表初始化的方法是c++11中新增語法)

vector vallist = ;

需要輸出這個vector中的每個元素,測試原型如下:

void showvec(const vector&vallist)

int main(int argc, char*ar**) ; showvec(vallist); return 0; }

下面就開始我們的茴香豆的n種寫法吧 !

方法零,對c念念不捨的童鞋們習慣的寫法:

void showvec(const vector&vallist)

}

或者1

2

3

4

5

6

7

8

voidshowvec(constvector<int>& vallist)

}

方法一,大家喜聞樂見的for迴圈迭代器輸出,(注意,此處使用了c++11中新增的標準庫容器的cbegin函式)

void showvec(const vector&vallist)

}

或者使用c++新增的語義auto,與上面差不多,不過能少打幾個字:

void showvec(const vector&vallist)

}

方法二,for_each加函式:

templatevoid printer(const t&val)

void showvec(const vector&vallist)

方法三,for_each加仿函式:

templatestructfunctor

}; void showvec(const vector&vallist)

方法四,for_each加lambda函式:(注意:lambda為c++11中新增的語義,實則是乙個匿名函式)

void showvec(const vector&vallist)

); }

方法五,for區間遍歷:(注意,for區間遍歷是c++11新增的語法,用於迭代遍歷資料列表)

for(auto val : vallist)

etc.

最後:c++11相比c++98/03還是更新了挺多東西的,目前g++最新版已完全支援c++11標準,這意味著開源社群的新的project必然將遷移到最新的c++11標準上,平時參與/閱讀/參考開源**的童鞋們需要學習了。

作為c++程式設計師,我們當然要與時俱進,擁抱c++11!

c語言中的幾條遍歷的方法

c語言中的幾條遍歷的方法 1.簡單的數字遍歷 逆向列印出每一位 include include void onenumber int n int main i 10完成的是對十進位制數字中每一位的遍歷 i 2完成的是對二進位制數字中每一位的遍歷 i m完成的是對m進製數字的遍歷 執行結果 2.完成對...

C語言中樹的建立和遍歷

樹的遍歷分為三種 前序遍歷 根左右 中序遍歷 左根右 後序遍歷 左右根 ps 根左右,就是先遍歷根節點,然後是左子樹,最後是右子樹。如下圖 前序遍歷 abdecf。中序遍歷 dbeacf。後序遍歷 debfca。pps 有一種更便捷的方法來寫出三種遍歷的結果 從根節點開始,從左面畫線,將樹沿著邊界圈...

C語言中6條遍歷的方法

1.簡單的數字遍歷,通過數字確定次數。for i a i b i i完成了對 a,b 的遍歷 2.陣列遍歷 for i 0 i n i a i 完成了對陣列a的遍歷 3.字串遍歷 for i 0 str i i str i 完成了對字串str的遍歷 4.數字遍歷 for i src i i 10 i...