在不使用预定义的 C++ 函数的情况下,按字母顺序在每个索引处打印存储在 Hashtable 中的名称

Print the names stored in Hashtable, at each index, in alphabetic order, without using predefined C++ functions

问题:

我有一个哈希表,其中存储了一些名称。我的问题是按字母顺序打印每个索引处的内容。

注意:

我在 C++ 中工作,要求不使用任何预定义的 C++ 函数。 (我使用结构定义了 Hashtable,然后声明了 Hashtable 的所有常用函数)。

我的想法:

我想到了使用一个数组,这样我就可以复制所有记录,存储在 Hashtable 索引 "i" 的链接列表中,在它(数组)中,然后对数组进行排序,最后,打印它的内容。所以,这样对于所有的索引,其中各自链表的头部都不是空指针。

我觉得这个想法太原始了。你能给我关于这个话题的任何建议吗?

提前致谢!

如果您的数据结构是关联容器但未排序(例如 std::mapstd::unordered_map),那么您无法在仅管理结构时保持它们的顺序。

许多散列 table 实现甚至无法提供随机访问运算符,因为它对此类数据结构没有意义:尽管索引在内部需要为值寻址存储桶,但它们对客户端而言没有意义观点。

你的原始想法似乎很合理,将键复制到向量 / 链表 / 数组 然后对数组进行排序。