C++ iterator 如何实现
实现了一个数据结构,想写一个iterator,遇到点问题.
首先是使用内部类还是友元的问题.我之前写过另一个小程序,因为滥用友元,结果代码看上去很乱,因此我不太倾向于使用友元;但是,如果使用内部类,就只能将iterator类声明为类的public成员,要不类外边引用不到iterator类对象.之前写过Java的迭代器,因为有Iterator接口,所以总是将自定义的迭代器类声明为类的private成员内部类.C++中有没有类似于Java Iterator接口之类的东西,或者说,自定义迭代器时有没有什么类可以继承?能不能有什么方法将iterator类声明为private成元内部类--就像Java那样.
还有,我看网上说,STL中的iterator是用友元实现的,这是为什么呢?使用友元的好处在哪?
高人指点,小生谢过先.