之前我们实现了迭代器模式,很多编程语言实际上已经内置了迭代器类,比如Java就为我们实现了迭代器Iterator。我们首先来看Iterator中的源码。通过JDK源码我们发现Iterator是一个接口,包含三个方法:hasNext、next、remove。1packagejava.util;23publicinterfaceIterator<E&..
分类:
编程语言 时间:
2017-06-27 13:49:31
阅读次数:
151
1 简介 boost是一个准C++标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。 boost主要包含以下几个大类: 字符串及文本处理、容器、迭代器(iterator)、算法、函数对象和高阶编程、泛型编程、 模板元编程、预处理元编程、并发编程、数学相关、 ...
迭代器 Iterator是迭代器的意思,它的作用是一次产生一个数据项,直到没有为止。这样在 for 循环中就可以对它进行循环处理了。那么它与一般的序列类型(list, tuple等)有什么区别呢?它一次只返回一个数据项,占用更少的内存。但它需要记住当前的状态,以便返回下一数据项。它是一个有着next ...
分类:
编程语言 时间:
2017-06-07 23:15:31
阅读次数:
307
JAVA容器大致包括两大阵营:Collection和Map。 先来看一下Collection。 1. Collection Collection首先实现了迭代器Iterator,这样所有Collection的子类都可以使用Iterator进行遍历。 2. List,ArrayList,LinkedL ...
分类:
编程语言 时间:
2017-06-03 21:45:44
阅读次数:
197
1.auto 它的功能为类型推断。auto是一个类型的占位符,通知编译器去根据初始化代码推断所声明变量的真实类型。各种作用域内声明变量都可以用到它。 在遍历STL容器时需要声明迭代器(iterator),现在不需要声明typedef就可以得到简洁的代码了。 需要注意的是,auto不能用来声明函数的返 ...
分类:
编程语言 时间:
2017-05-24 13:41:32
阅读次数:
347
迭代器(Iterator)模式 意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。 主要解决:不同的方式来遍历整个整合对象。 代码: ...
分类:
其他好文 时间:
2017-05-20 14:25:42
阅读次数:
123
STL概述: STL (Standard Template Library, 标准模板库) 是惠普实验室开发的一系列软件的统称。主要核心分为三大部分:容器(container)、算法(algorithm)和迭代器(iterator),另外还有容器适配器(container adaptor)和函数对象 ...
分类:
其他好文 时间:
2017-05-19 21:07:48
阅读次数:
232
其实本来是想巩固一下基础从高精度开始再看一遍,结果突然看到string觉得有必要加强一下,于是我就学习了一下迭代器,,, 迭代器(iterator)是一种检查容器内元素并遍历元素的数据类型。(1) 每种容器类型都定义了自己的迭代器类型,如vector:vector<int>::iterator it ...
分类:
编程语言 时间:
2017-05-19 16:58:55
阅读次数:
236
声明迭代器: 1. vector<int>::iterator it; string::iterator it2; 2. vector<int>::const_iterator it3; string::const_iterator it4; 在声明和定义一个迭代器时,要使用域名作用符指出它所在的容 ...
分类:
其他好文 时间:
2017-05-18 16:57:46
阅读次数:
134
首先我们先模仿集合中ArrayList和LinkedList的实现。一个是基于数组的实现、一个是基于链表的实现,实现方式各有不同, 为了减少代码的耦合度,面向接口编程。定义Collection接口定义API规范。 可是在遍历集合中的元素时,由于数组和链表的遍历方式不一样,能不能统一处理呢? 再定义一 ...
分类:
其他好文 时间:
2017-05-16 23:05:15
阅读次数:
247