iterator的hasNext() 和
next()方法用于enumeration的hasMoreElements() 和 nextElement()iterator it =
a.itreator();Enumeration en = new Enumeration(){@Overridepub...
分类:
其他好文 时间:
2014-05-01 12:59:57
阅读次数:
358
快速失败是指某个线程在迭代集合类的时候,不允许其他线程修改该集合类的内容,这样迭代器迭代出来的结果就会不准确。比如用iterator迭代collection的时候,iterator就是另外起的一个线程,它去迭代collection,如果此时用collection.remove(obj)这个方法修改了...
分类:
其他好文 时间:
2014-04-30 01:47:43
阅读次数:
600
traits编程技法大量运用于STL实现中。通过它在一定程度上弥补了C++不是强型别语言的遗憾,增强了C++关于型别认证方面的能力。traits编程技法是利用“内嵌型别”的编程技法和编译器的template参数推导功能实现的。iterator_traits1.对于class
type要求其“内嵌型别...
分类:
其他好文 时间:
2014-04-29 21:32:10
阅读次数:
672
最近在看读《STL源码剖析》,看到Traits编程技法这节时,不禁感慨STL源码作者的创新能力。那么什么是Traits编程技法呢?且听我娓娓道来:
我们知道容器的许多操作都是通过迭代器展开的。其中容器类似于数组,迭代器类似于指针。我们用数组来写个例子:1 int arr[5] = {1,2,3...
分类:
其他好文 时间:
2014-04-29 18:15:15
阅读次数:
463
对于逆向迭代器,很重要的一点是需要弄清楚逻辑位置和实际位置二者的区别。
下图显示了逆向迭代器的位置和所指的数值:
可以发现,逆向迭代器所指位置(实际位置)和所代表的的数值(逻辑位置或数值)是不同的。C++这么做是有其原因的。导致这个行为的原因是区间的半开性。为了能够制定容器内的所有元素,我们必须运用最后一个元素的下一个位置。但是对于reverse迭代器而言,这个位置位于第一个元素之...
分类:
其他好文 时间:
2014-04-29 13:14:21
阅读次数:
367
本文从三方面总结迭代器 迭代器的思想 迭代器相应型别及traits思想
__type_traits思想一 迭代器思想
迭代器的主要思想源于迭代器模式,其定义如下:提供一种方法,使之能够依序巡防某个聚合物(容器)所含的元素,而又无需暴露该聚合物的内部表达式。可见她的主要作用便是能够降低耦合,提高代码....
分类:
其他好文 时间:
2014-04-29 09:13:47
阅读次数:
378