c++ stl绝大多数标准容器都提供了iterator,一些容器,比如priority_queue,因为语意上就不应该允许随便遍历容器中的元素,所以也就没有iterator了。
23种经典设计模式中就有迭代器模式,java集合框架也实现了这个模式:
Java代码
package java.util; public interface Iterator{ boolean hasNext(); E next(); void remove(); }
c++的迭代器要比java更灵活,主要体现在:
1.java只有从前向后的一种迭代器,c++除了从前向后迭代器外,还提供了从后向前的迭代器,比如:
立即学习“C++免费学习笔记(深入)”;
Cpp代码
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。它不是新的编程语言,而是一种使用现有标准的新方法,最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容,不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。《php中级教程之ajax技术》带你快速
mapamap; amap.insert(pair (1,1)); amap.insert(pair (2,2)); map ::iterator it; for(it = amap.begin();it != ampa.end();it++)//从前向后 { cout<<"key:"< first<<" value:"< second< Cpp代码
}Cpp代码
map::reverse_iterator rit; for(rit = amap.rbegin();rit != amap.rend();rit++)//从后向前 { cout<<"key:"< first<<" value:"< second< 2.c++除了iterator之外,还提供了const_iterator,后者只能读取集合中的数据,但是不能改变其值.
3.java的迭代器貌似只能单步自增,而c++的迭代器 除此之外,还可以实现算数操作,比如+n,-n,这样对于需要随机读取某个元素的场景就就很有用了,但是,貌似只有 vector的iterator才支持算数操作。也就是说前面例子中的迭代器it是不能进行 it = it+n之类的操作的。这一点要切记。










