为开放哈希表实现operator ++

时间:2015-09-16 10:13:24

标签: c++ iterator hashtable

我有以下用于创建开放哈希表迭代器的布局:

#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设置为什么值。

0 个答案:

没有答案