为了账号安全,请及时绑定邮箱和手机立即绑定

如何实现STL样式的迭代器并避免常见的陷阱?

如何实现STL样式的迭代器并避免常见的陷阱?

C++
互换的青春 2019-07-31 14:04:34
如何实现STL样式的迭代器并避免常见的陷阱?我创建了一个集合,我想提供一个STL风格的随机访问迭代器。我正在寻找迭代器的示例实现,但我没有找到任何。我知道需要const重载[]和*运算符。迭代器有什么要求是“STL风格”,还有哪些其他缺陷需要避免(如果有的话)?附加上下文:这是一个库,除非我真的需要,否则我不想引入任何依赖。我编写自己的集合,以便能够使用相同的编译器在C ++ 03和C ++ 11之间提供二进制兼容性(因此没有STL可能会破坏)。
查看完整描述

3 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

Boost.Iterator中的iterator_facade文档提供了一个关于为链表实现迭代器的精彩教程。你可以用它作为在容器上构建随机访问迭代器的起点吗?

如果不出意外,您可以查看由其提供的成员函数和typedef,iterator_facade并将其用作构建自己的成员函数和typedef 的起点。


查看完整回答
反对 回复 2019-07-31
?
四季花海

TA贡献1811条经验 获得超5个赞

Thomas Becker在这里写了一篇关于这个主题的有用文章。


先前在SO上出现了这种(也许更简单)的方法:如何正确实现自定义迭代器和const_iterators?


查看完整回答
反对 回复 2019-07-31
  • 3 回答
  • 0 关注
  • 505 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信