如何在C++中将foreach迭代支持添加到我自己的集合类中?

Che*_*fif 2 c++ iteration foreach

我创建了一个集合类型的C++实现.我想添加迭代支持,以便开发人员可以在其上使用"for each"语句.我怎样才能做到这一点?

Naw*_*waz 5

标准成语是:暴露类型iteratorconst_iterator和即提供至少两个功能,begin()并且end()为:

template</*.....*/>
class Collection
{
 public:
     typedef /*...*/ iterator;
     typedef /*...*/ const_iterator;

     iterator begin();
     iterator end();

     const_iterator begin() const;
     const_iterator end() const;
};
Run Code Online (Sandbox Code Playgroud)

一旦实现了这些,您的集合就可以在std::for_each其中定义的许多其他算法函数中使用<algorithm>.