0

我有一个用 3 个向量实现数据结构(某种哈希图)的类。

std::vector<uint64_t> keys;  // storage of keys to values (actually hash values)
std::vector<int> values; // storage for values (some integer)
std::vector<bool> allocated; // vector of allocated elements

每个向量具有相同的大小(例如 8 个元素)

它看起来像这样

keys:      32233 52263 0     22224 0    87222  65432  0
values:    234   44    0     43    0    78     98     0
allocated: 1     1     0     1     0    1      1      0

我想实现一个自定义迭代器,它可以迭代分配的 向量并能够返回值向量 的相应值和向量的键。应该忽略空点(在分配的向量中标记为 0),因为这些点被视为空闲点。我想我可能能够返回每个迭代分配的点的一对类型,比如std::pair< key, value >或这样,所以我将它们作为键it->first和值作为it->second

我真的不知道如何开始实施这一点。这可能吗?如果有人可以给我小的示例代码,那就太好了。也许这比我想的更简单。

在此先感谢您的帮助!

4

0 回答 0