功能尚不完全, 存在缺陷。定义Vector vec(10, 10)会报出异常, 原因是无法识别10是int型还是iterator型。注意几点:分配内存不要使用new和delete,因为new的同时就把对象构造了,而我们需要的是原始内存。所以应该使用标准库提供的allocator类来实现内存的控制。当...
分类:
其他好文 时间:
2014-10-05 20:04:49
阅读次数:
194
自定义迭代器必须提供iterator_traits的五种特性,分别是迭代器类型、元素类型、距离类型、指针类型与reference类型。这里我们继承标准库提供的iterator即可。代码如下: 1 #ifndef ITERATOR_H 2 #define ITERATOR_H 3 #include ....
分类:
其他好文 时间:
2014-10-05 19:36:08
阅读次数:
224
定义:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。
结构图:
示例代码:
public interface Iterator {
public Object First();
public Object Next();
public boolean isDone();
public Object currentItem();
}
pub...
分类:
其他好文 时间:
2014-10-05 15:36:18
阅读次数:
186
3.迭代器简介
除了使用下标来访问vector对象的元素外,标准库还提供了访问元素的方法:使用迭代器。迭代器是一种检查容器内元素并且遍历元素的数据类型。
百科释义:
迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做...
分类:
其他好文 时间:
2014-10-04 23:11:57
阅读次数:
189
/* * 取出map元素的两种方式 */package com.map.test;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;public class Tes...
分类:
编程语言 时间:
2014-10-04 22:28:37
阅读次数:
187
有array(数组)、smartptr(智能指针)、stack(栈);一、array:1、我们实现了指针访问和下标访问。C++中指针访问常用迭代器来代替。2、这里我们也揭示了 size_type、iterator、[] 、begin()、end()、size()的真实面目;Array.hpp 1 #...
分类:
编程语言 时间:
2014-10-02 02:02:52
阅读次数:
292
这里的迭代器能够与STL组件共同工作,是对STL的一种扩充。 自定义迭代器必须提供iterator_traits的五种特性,分别是迭代器类型、元素类型、距离类型、指针类型与reference类型。 这里我们继承标准库提供的iterator即可。 代码如下: MyIterator.hpp 该迭代器针对...
分类:
其他好文 时间:
2014-09-29 23:37:51
阅读次数:
188
erase 删除后 返回的是删除元素的后一个迭代器位置
int main()
{
//如何正确的删除所有元素 循环
int a[]={1,2,3,4,5,6,7,8,9};
vector v(a,a+6);
for(vector::iterator it=v.begin();it!=v.end();)
{
it=v.erase(it);
}
for(vector::itera...
分类:
编程语言 时间:
2014-09-29 14:48:31
阅读次数:
150
增加了逆置迭代器的实现 以及swap功能 完整代码如下: #ifndef VECTOR_H_
#define VECTOR_H_ #include #include #include template class Vector
{
public: typedef T *iterator; typed...
分类:
其他好文 时间:
2014-09-29 04:28:56
阅读次数:
282