フル機能の抽象データ型としてハッシュマップをC++でゼロから実装します。特に、このデータコンテナには、識別キーの昇順ですべてのレコードをトラバースできるイテレータを提供します。そして、この部分は私を混乱させます、私はこれをどのように行うのか分かりません。ところで、ハッシュ関数によって、私は一方向リストで別々のチェーンを使用することにしました。私が思いついた解決策の1つは、すべての要素を適切な順序でまとめてバインドする別のリストを作成することです。このリストの機能は、挿入プロセス自体で保護されます。しかし、少なくとも挿入に関しては、ハッシュ自体の利点の多くを損なうように思われます。特に、私のADTの目的を見ると、トラバーサル機能は比較的めったに使用されません。短編小説、どのようなソリューションを提供する必要がありますか?専用ライブラリは使用できませんのでご了承ください。
ノート:
私はハッシュマップが何であるか、そしてそれが本質的に順序付けられていないその学術的定義によるものであることを知っています。別の言い方をすれば、基本的にハッシュマップとイテレータ機能を提供する追加の軽量モジュールで構成されるハイブリッドで実用的なADTを構築して、そのようなADTのユーザーがキーの昇順でレコードを随時。