我将在 C++ 中从头开始实现哈希映射作为功能齐全的抽象数据类型。特别是,我将为这个数据容器提供一个迭代器,它能够以识别键的升序遍历所有记录。这部分让我感到困惑,我不知道该怎么做。顺便说一句,通过散列功能,我决定对单向列表使用单独的链接。我想到的一个解决方案是制作另一个列表,该列表将以适当的顺序完全绑定所有元素,该功能将在插入过程本身期间得到保护。但在我看来,它会损害散列本身的许多好处,至少在插入方面;尤其是看看我的ADT的用途,遍历功能会比较少用。长话短说,我应该提供什么样的解决方案?请注意,我不能使用任何专门的库。
笔记:
我知道哈希映射是什么,并且它的学术定义本质上是无序的。也许我应该换个说法,我要构建一个混合的、实用的 ADT,它基本上由一个哈希映射和一些额外的轻量级模块组成,这些模块将提供迭代器功能,这样 ADT 的用户可以从不时按键的升序对记录进行计时。