boost::iterator_adaptor (III)

类别:编程语言 点击:0 评论:0 推荐:

发信人: hhuu (我爱XXX), 信区: Programming
标  题: boost::iterator_adaptor  (III)
发信站: BBS 水木清华站 (Mon May 20 17:57:07 2002)

小技巧前面都讲过了, 最后来讨论一下存在的意义吧. ;)

  iterator是stl的特征之一。通过iterator遍历容器, 通过*iterator访问容
  器中的元素,这样的想法显然脱胎于指针。关于iterator和Doc/View结构的比
  较,之前曾经在blitz的文档中提过(那篇C++若干技术的讨论结尾)。文中所
  说的观念现在看起来不是很合适。事实上,每一个iterator都可以看作一个
  View!通过改变iterator来实现对于同一Data的不同View的技巧, 也就是为
  什么要使用iterator_adaptor最初的动机。

  我觉得iterator_adaptor这里的adaptor并不切合它实际的意思,绝大多数情
  况下,iterator_adaptor是包装原有的iterator,修改它的行为。希望大家
  能提一个更好的说法。

  如果对iterator本来就有所了解的话,你可以猜到iterator需要哪些模板参数。
  这些参数当中最重要的就是policy了,这倒是名副其实的很,和dp中policy的
  意思一样。iterator的处理方法就是把对iterator的操作转到policy中去完成。
  而你实现一个自己的policy的方法,就是继承那个default_policy,然后用自
  己的方法覆盖。比如说string中的iterator缺省是按char移动的,如果你改动
  了policy,使他按word移动,那该如何?嗯,具体的实现就是
  boost::tokenize。

 

--

※ 来源:·BBS 水木清华站 bbs.edu.cn·[FROM: 166.111.64.166]                                                            

本文地址:http://com.8s8s.com/it/it29580.htm