我想为我的列表数据维护一个迭代器,但列表数据中有另一个列表,我也想维护它的迭代器。我应该在迭代器中维护一个迭代器吗?两个迭代器应该分开吗?
// iterator interface
class Iterator
{
public:
boolean hasNext() = 0;
Object getCurrnetItem() = 0;
Object next() = 0;
boolean remove() = 0;
}
// this iterator will iterator the following list
std::vector<MY_SCRUCT> mList;
现在 MY_STRUCT 有另一个 std::vector 我也需要迭代器。以下将其表示为示例代码:
struct MY_SCRUCT
{
int numOfObjects;
std::vector<int> data; // i need iterator for this one too!
}
我需要维护这两个列表的迭代器,以便我的应用程序可以随时知道当前选定的项目是什么。
我的问题再次是,这些迭代器是否应该分开,一个留在另一个内部以对应于该数据结构?