首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >创建我自己的迭代器

创建我自己的迭代器
EN

Stack Overflow用户
提问于 2008-09-29 12:54:06
回答 5查看 101.7K关注 0票数 144

我正在努力学习C++,所以如果这个问题表明我缺乏基本知识,请原谅我,你看,事实是,我缺乏基本知识。

我需要一些帮助来解决如何为我创建的类创建迭代器。

我有一个类'Shape‘,它有一个点的容器。我有一个类‘块’,它引用了一个形状并定义了该形状的位置。块没有形状,它只是引用了一个形状。

我希望它看起来像是块是一个点的容器,这些点与它引用的形状相同,但添加了块位置的偏移。

我希望能够遍历块的点,就像块本身就是一个容器一样。我已经做了一些阅读,但没有找到任何对我有帮助的东西。如果有任何建议,我将不胜感激。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-09-29 15:34:12

您应该使用Boost.Iterators。它包含许多模板和概念,用于为现有迭代器实现新的迭代器和适配器。我写过an article about this very topic;它发表在2008年12月的ACCU杂志上。它讨论了一个(IMO)优雅的解决方案来解决您的问题:使用Boost.Iterators公开对象中的成员集合。

如果您只想使用stl,Josuttis book中有一章介绍了如何实现您自己的STL迭代器。

票数 42
EN

Stack Overflow用户

发布于 2009-05-08 14:37:06

这里的Designing a STL like Custom Container是一篇很好的文章,它解释了一些基本的概念,解释了如何设计一个类似STL的容器类以及它的迭代器类。反向迭代器(稍微困难一点),不过作为练习:-)

HTH,

票数 20
EN

Stack Overflow用户

发布于 2008-09-29 13:09:48

您可以阅读此ddj article

基本上,继承std::iterator可以为您完成大部分工作。

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

https://stackoverflow.com/questions/148540

复制
相关文章

相似问题

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