0

我想知道是否可以将自定义迭代器实现为抽象类作为嵌入式类,并适当地重载运算符和方法。也就是说,如果它可以作为起点开始:

template <typename T>
class my_class {
public:
    .
    .
    class iterator {
    public:
        .
        .
    };
};

我尝试了解实现自定义迭代器的几种不同方法,但如果布局可以简化一点,会更容易掌握。现在可以在 my_class 中实现 begin()、end() 等方法以及所需的任何其他类型。

这样的实现会与 STL 算法兼容吗?我记得曾经实现过这样一个似乎可以工作的迭代器类,但我不确定它是否可以正常工作。

4

1 回答 1

2

没有要求在哪里定义类型。它必须可以作为container::iterator(和container::const_iterator)访问,并且没有理由不能在那里定义它。嵌套类型与其他类型一样。

于 2012-10-11T07:00:59.997 回答