posts - 43,comments - 3,trackbacks - 0
Insert Iterators:

front_insert_iterator是具有Output Iterator功能的一个iterator adapter,可将object安插于Front Insertion Sequence中的第一个元素之前,具有安插语义,改变Seqence中元素的总个数。

back_insert_iterator具有和Output Iterator功能的一个iterator adapter,赋值动作可将object安插于Back Insertion Sequence的最后一个元素之后。

insert_iterator是一种iterator adapter,功能如同Output Iterator。通过insert_iterator,赋值动作可将object安插于Container之中。如果ii是个insert_iterator,那么ii会持续追踪一个Container c和一个安插点p。表达式*ii = t将执行安插动作c.insert(p,t),它会为c新增元素,而非覆盖。对于Sorted Associative Container而言,虽定义有带两个参数的insert版本,但只是作为优化之用,第一个参数值是个提示,指向查找的起始位置。


===============================
Stream Iterators:

istream_iterator是一种Input Iterator,它能为来自某个basic_istream的objects执行格式化输入动作。一旦stream结束,istream_iterator便呈现一个特别的stream终结值,此值为past-the-end iterator.
copy(istream_iterator<int>(cin), istream_iterator<int>(), back_inserter(V));

ostream_iterator是一种Output Iterator,它能将一个T Objects格式化输出到某个特定的basic_ostream中。

istreambuf_iterator和istream_iterator非常相似,它从input stream读入单个字符。是一种input Iterator。
ostreambuf_iterator和ostream_iterator非常相似,可以将字符写入一个output ostream之中。

reverse_iterator是一种iterator adapter,能够在range上逆向移动。在reverse_iterator<Iter> object上执行operator++ 和 在object上执行operator--的结果是相同的。Reverse iterator的同一性为:&*(reverse_iterator(i)) == &*(i-1)

raw_storage_iterator是一种adapter,可以让STL算法与低阶内存操作彼此结合起来。当我们有必要将内存的分配与对象的构造分开处理时,可以派上用场。 *i = x 等价于 construct(&*i, x)


posted on 2008-02-11 15:45 RUI 阅读(272) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理