我想知道是否可以将自定义迭代器实现为抽象类作为嵌入式类,并适当地重载运算符和方法。也就是说,如果它可以作为起点开始:
template <typename T>
class my_class {
public:
.
.
class iterator {
public:
.
.
};
};
我尝试了解实现自定义迭代器的几种不同方法,但如果布局可以简化一点,会更容易掌握。现在可以在 my_class 中实现 begin()、end() 等方法以及所需的任何其他类型。
这样的实现会与 STL 算法兼容吗?我记得曾经实现过这样一个似乎可以工作的迭代器类,但我不确定它是否可以正常工作。