C++作為一種C語言的升級版本,可以為開發人員帶來非常大的好處。我們在這篇文章中將會針對C++遍歷集合的相關概念進行一個詳細的介紹,希望大家可以從中獲得一些幫助,以方便自己的學習。
在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引入的增強的for語法
- List list =
- for (Integer item : list) {
- }
在C#中,遍歷集合的方式如下:
- foreach (Object item in list)
- {
- }
其實你還可以這樣寫,不過這樣寫的人很少而已
- IEnumerator e = list.GetEnumerator();
- while (e.MoveNext())
- {
- Object item = e.Current;
- }
在C# 2.0中,foreach能夠作一定程度的編譯期類型檢查。例如:
- IList< int> intList =
- foreach(String item in intList) { } //編譯出錯
在C++標准庫中。for_each是一種算法。定義如下:
- for_each(InputIterator beg, InputIterator end, UnaryProc op)
在C++遍歷集合中,由於能夠重載運算符(),所以有一種特殊的對象,仿函數。
- 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));
以上就是對C++遍歷集合的相關介紹。