我有以下用于创建开放哈希表迭代器的布局:
#include <vector>
#include <list>
using namespace std;
class HT{
private:
struct info{
int key;
int di;
};
vector< list<info> > data;
public:
class iterator{
private:
list<info>::iterator bucket_it;
vector< list<info> >::iterator it;
};
iterator begin();
iterator end();
}
有人能告诉我应该如何实现operator ++吗?我正在考虑这个解决方案:
iterator& operator++(){
++bucket_it;
if(bucket_it == it->end()){
++it;
if(it != end()){ //???
bucket_it = it->begin();
}else{
bucket_it = //???
}
}
}
问题是我不知道如何在不知道容器的情况下知道向量的结束迭代器。另外,我无法弄清楚在这种情况下应该将bucket_it设置为什么值。