我有一个实现具有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
。
我真的不知道如何开始实施这个。这有可能吗?如果有人能给我一些小样本代码,那就太棒了。也许这比我想的更简单。
提前感谢您的帮助!