0

特定の理由により、オブジェクトのリンクされたリストがあり、オブジェクトには文字列が含まれています。

特定の文字列を検索し、その文字列に基づいてオブジェクトを取得する必要がある場合があります。

リストの開始ヘッダーは、リストに対する唯一の入力です。

私が持っているオブジェクトの数は 3000 に制限されており、それほど多くはありませんが、オブジェクトを 1 つずつ検索して一致する文字列を探す代わりに、これを行う効率的な方法があるかどうか疑問に思いました。

リスト内のオブジェクトは決してソートされておらず、ソートされることは期待できません。また、リンクされたリストへのエントリ ポイントが唯一の入力です。

それで、これを達成するための効率的な方法(おそらく検索アルゴリズム)があるかどうか誰か教えてもらえますか?

この種の検索とは別に、必要に応じて、この検索がオブジェクトの最もデータ集約的な機能であると仮定すると、どのような種類のデータ構造が推奨されるでしょうか?

ありがとう..

4

3 に答える 3

2

を使用しstd::map<std::string, YourObjectType>ます。すべてのオブジェクトを繰り返し処理できます。しかし、現在は文字列でソートされています。

同じ文字列を持つオブジェクトが複数ある可能性がある場合は、multimap代わりに a を使用してください。

于 2013-10-16T09:12:49.967 に答える
0

リンクされたリストの代わりに使用したい 3000 がunordered mapあると、平均 O(1) ルックアップ、挿入、および削除時間が得られます。

于 2013-10-16T09:14:59.037 に答える