大部分ACM中使用的都是C/C++語言,可是說到C語言和C++語言的區別,殊不知道。c++
和指針相似,有如下操做:ide
1 *iter; //返回迭代器iter所指元素的引用 2 iter->men; //解引用iter並得到該元素的名爲men的成員,至關於(*iter).men 3 ++iter; //令iter指示容器的下一個元素 4 --iter; //令iter指示容器的上一個元素 5 iter1==iter2; // 若是兩個迭代器指示的是同一個元素或者它指向同一個容器的尾後迭代器,則相等.
1 iter+n; //迭代器加上一個整數值仍獲得一個迭代器,迭代器指示的新位置向前移動了,指示多是容器的一個元素或者是尾部的下一個位置 2 iter-n; //相反,迭代器指示的位置向後移動了,指示多是容器的一個元素或者是尾部的下一個位置 3 iter1+=n; //等價於iter1+n 4 iter1-=n; //等價於iter2-n 5 iter1-iter2; //兩個迭代器的距離, 6 >,<,>=,<= //位置離begin近的較小
迭代器通常使用iterator 和 const_iterator兩種類型,區別應該看名稱也能猜出來,後者只能進行讀取操做,而不能修改值。函數
1 vector<int>::itertor it; //定義了一個隨機迭代器 2 vector<int>::const_itertor iter; //定義了一個只讀的隨機迭代器
容器中的大部分函數以及操做,都是基於迭代器完成的。因此學會使用迭代器是學習C++的一個必經之路。學習
值得一提的是,既然使用C++語言,就要徹底利用C++語言的方便性,而不是僅僅只使用一個cin或者cout。spa