我想知道是否可以将抽象类的自定义迭代器实现为嵌入类,并适当重载运算符和方法。也就是说,如果它可以作为一个起点开始:
template <typename T>
class my_class {
public:
.
.
class iterator {
public:
.
.
};
};
我尝试过理解实现自定义迭代器的几种不同方法,但如果布局可以简化一点,就会更容易掌握。begin()、end()等方法现在可以在my_class中实现,还可以实现所需的任何其他类型。
这样的实现是否与STL算法兼容?我记得我实现了这样一个迭代器类,它似乎可以工作,但我不确定它总体上是否可以。
没有定义类型的要求。它必须可以作为container::iterator
(和container::const_iterator
)访问,没有理由不能在那里定义它。嵌套类型和其他类型一样。