我一直在寻找为我自己的容器创建迭代器的示例代码,但我没有真正找到一个好例子。我知道这是之前问过的(Creating my own Iterators),但没有看到任何满意答案的例子。我在哪里可以获得C++示例代码,为我自己的容器创建迭代器?
我正在寻找简单的示例代码来开始如何设计我自己的迭代器。
感谢
我一直在寻找为我自己的容器创建迭代器的示例代码,但我没有真正找到一个好例子。我知道这是之前问过的(Creating my own Iterators),但没有看到任何满意答案的例子。我在哪里可以获得C++示例代码,为我自己的容器创建迭代器?
我正在寻找简单的示例代码来开始如何设计我自己的迭代器。
感谢
Here你会发现用于创建自定义的迭代器很好的介绍。也请看Boost.Iterator图书馆。
我找到了Matthew Wilson's 'extended STL'很关于这个问题的教育。包含大量的操作和注意事项,以及大量实用的编程技巧。我认为这个人真的知道他在做什么。 (也为此创建了库)
Nicolai Josuttis在他的书中有一个用户定义的迭代器示例:C++标准库,一个教程和一个参考。
下面是示例在线:
http://www.josuttis.com/libbook/iter/assoiter.hpp http://www.josuttis.com/libbook/iter/assoiter.cpp
就拿本文描述如何实现你的类自定义虚拟迭代器上一看:article
它有一个显著的优势 - 你可以创建一个抽象基类迭代器类,并用一些自定义迭代器为你自己的容器和一些STL容器继承它。因此,您将能够动态使用迭代器 - 您的函数将使用指向抽象迭代器类的指针,而其他代码将能够选择使用哪些容器。
更具体地说,iterator_adaptor是一种美感。只需要几行代码就可以得到一个完整的迭代器。 – 2009-11-13 10:42:07
'iterator_facade'也非常有帮助 – jalf 2009-11-13 18:16:29