gpt4 book ai didi

C++ 迭代器 : Can iterators to an abstract class be implemented as a nested class?

转载 作者:行者123 更新时间:2023-11-28 03:30:03 26 4
gpt4 key购买 nike

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

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

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

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

最佳答案

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

关于C++ 迭代器 : Can iterators to an abstract class be implemented as a nested class?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12833674/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com