实现从2个向量返回数据的自定义迭代器

时间:2013-02-06 14:07:03

标签: c++ iterator stdvector

我有一个实现具有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

我真的不知道如何开始实施这个。这有可能吗?如果有人能给我一些小样本代码,那就太棒了。也许这比我想的更简单。

提前感谢您的帮助!

0 个答案:

没有答案