首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为合成数据创建迭代器?

如何为合成数据创建迭代器?
EN

Stack Overflow用户
提问于 2011-10-21 16:17:20
回答 1查看 130关注 0票数 2

我正在使用boost::iterator_facade<>制作用于合成数据的迭代器。只有通过调用句柄上的函数才能访问数据。句柄被包装到MyHandle中。我已经知道我需要对ValueReference模板参数使用MyHandle。因此,迭代器声明如下所示:

代码语言:javascript
复制
class MyIterator
    : public boost::iterator_facade<
        MyIterator
        , MyHandle
        , boost::forward_traversal_tag
        , MyHandle
    >

这是做这种事情的唯一方法吗?或者有没有更好的方法来为合成数据创建迭代器?此外,boost::forward_traversal_tag似乎没有很好地传达数据的人工效果,代码是否应该使用不同的迭代器标记?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-22 03:25:00

boost::function_input_iterator将生成器函数包装在迭代器中。取消引用迭代器将调用函数并返回其结果:

http://www.boost.org/doc/libs/1_47_0/libs/iterator/doc/function_input_iterator.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7846753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档