C++迭代器:抽象类的迭代器可以作为嵌套类实现吗



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

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

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

这样的实现是否与STL算法兼容?我记得我实现了这样一个迭代器类,它似乎可以工作,但我不确定它总体上是否可以。

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

最新更新