C++遍歷集合應(yīng)用經(jīng)驗(yàn)總結(jié)
C++作為一種C語言的升級(jí)版本,可以為開發(fā)人員帶來非常大的好處。我們?cè)谶@篇文章中將會(huì)針對(duì)C++遍歷集合的相關(guān)概念進(jìn)行一個(gè)詳細(xì)的介紹,希望大家可以從中獲得一些幫助,以方便自己的學(xué)習(xí)。
在Java中,常見的遍歷集合方式如下:
- Iterator iter = list.iterator();
- while (iter.hasNext()) {
- Object item = iter.next();
- }
也可以使用for
- for (Iterator iter = list.iterator(); iter.hasNext()) {
- Object item = iter.next();
- }
JDK 1.5引入的增強(qiáng)的for語法
- List list =
- for (Integer item : list) {
- }
在C#中,遍歷集合的方式如下:
- foreach (Object item in list)
- {
- }
其實(shí)你還可以這樣寫,不過這樣寫的人很少而已
- IEnumerator e = list.GetEnumerator();
- while (e.MoveNext())
- {
- Object item = e.Current;
- }
在C# 2.0中,foreach能夠作一定程度的編譯期類型檢查。例如:
- IList< int> intList =
- foreach(String item in intList) { } //編譯出錯(cuò)
在C++標(biāo)準(zhǔn)庫中。for_each是一種算法。定義如下:
- for_each(InputIterator beg, InputIterator end, UnaryProc op)
在C++遍歷集合中,由于能夠重載運(yùn)算符(),所以有一種特殊的對(duì)象,仿函數(shù)。
- template< class T>
- class AddValue {
- private:
- T theValue;
- public:
- AddValue(const T& v) : theValue(v) {
- }
- void operator() (T& elem) const {
- elem += theValue;
- }
- };
- vector< int> v;
- INSERT_ELEMENTS(v, 1, 9);
- for_each (v.begin(), v.end(), AddValue< int>(10));
以上就是對(duì)C++遍歷集合的相關(guān)介紹。
【編輯推薦】

















