如何实现STL样式的迭代器并避免常见的陷阱?我创建了一个集合,我想提供一个STL风格的随机访问迭代器。我正在寻找迭代器的示例实现,但我没有找到任何。我知道需要const重载[]和*运算符。迭代器有什么要求是“STL风格”,还有哪些其他缺陷需要避免(如果有的话)?附加上下文:这是一个库,除非我真的需要,否则我不想引入任何依赖。我编写自己的集合,以便能够使用相同的编译器在C ++ 03和C ++ 11之间提供二进制兼容性(因此没有STL可能会破坏)。
3 回答
![?](http://img1.sycdn.imooc.com/533e4d00000171e602000200-100-100.jpg)
繁华开满天机
TA贡献1816条经验 获得超4个赞
Boost.Iterator中的iterator_facade文档提供了一个关于为链表实现迭代器的精彩教程。你可以用它作为在容器上构建随机访问迭代器的起点吗?
如果不出意外,您可以查看由其提供的成员函数和typedef,iterator_facade
并将其用作构建自己的成员函数和typedef 的起点。
![?](http://img1.sycdn.imooc.com/54584cde0001d19202200220-100-100.jpg)
四季花海
TA贡献1811条经验 获得超5个赞
Thomas Becker在这里写了一篇关于这个主题的有用文章。
先前在SO上出现了这种(也许更简单)的方法:如何正确实现自定义迭代器和const_iterators?
- 3 回答
- 0 关注
- 505 浏览
添加回答
举报
0/150
提交
取消