我有一个用 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
。
我真的不知道如何开始实施这一点。这可能吗?如果有人可以给我小的示例代码,那就太好了。也许这比我想的更简单。
在此先感谢您的帮助!