大部分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