boost::iterator_adaptor (III)

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

发信人: 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]

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航