【发布时间】:2019-06-06 13:09:48
【问题描述】:
我有一个到容器的纯虚拟接口,它或多或少像这样:
class IContainer
{
public:
virtual ~IContainer() = default;
virtual Element& operator[](size_t index) = 0;
virtual const Element& operator[](size_t index) const = 0;
virtual size_t size() const = 0;
};
我想使用范围 for 循环,所以我需要定义 begin() 和 end()。为此,我还需要定义迭代器类型。
这应该不是特别难,但是在我开始编写已经存在的东西之前,我想知道 STL 或 Boost 中是否已经有任何东西可以提供帮助。
【问题讨论】:
-
可能是你所追求的:std::iterator.
-
@Aconcagua 但已弃用...
-
文字题外话,要求推荐第三方库(Boost)
-
@SergeyA 再次,我将其读作“如何使用标准 C++ 和 boost 解决这个问题?”,鉴于 boost 的广泛使用,这似乎是一个合理的问题。但即使 if 你坚持询问如何使用 boost 做某事是在要求一个库(这似乎很可疑,因为“使用 boost.container。”几乎不会回答这个问题),这将如何适合用户界面中明确概述的规则精神?这将如何“吸引固执己见的答案或垃圾邮件”?
-
@SergeyA 鉴于问题是“STL 或 Boost”,您是否会将每个问题标记为“我如何使用 STL 进行 X”?
标签: c++ boost stl iterator containers