キーと値の構造のペアを持つシステムを実装しようとしています。それらはある種の線形の方法で保持される必要があり(つまり、インデックスを付けることができます)、一度位置を指定すると移動できないため、挿入は追加することしかできません(実際には多くの並べ替えはできません)。ちょうど例として、これは心に留められていることです:
Data list:
0: { "somekey", somevalue }
1: { "someotherkey", someothervalue }
...
n: { "justanotherkey", justanothervalue }
私はこのようなシステムを設計して、キーが検索されたときにそのインデックスをキャッシュして、一定の時間でアクセスできるようにしました。さて、データの順序や量を予測する方法がなく、並べ替えることもできないため、線形検索よりも優れたアルゴリズムやデータ構造に関するアイデアが必要ですが、それでも制約は維持されます。 dが好きです。
誰かアイデアがありますか?私はそれを大幅にスピードアップできるとは思えませんが、これが私のシステムのコアになるので、少しでも役に立ちます。前もって感謝します!
==編集==
2つの別々の構造(ハッシュテーブルと動的配列など)を使用するというアイデアは、実際には私の最初の意図でした。残念ながら、キーと値を分離できないため、これは機能しません。キーはエラーとメッセージに使用されるため、インデックスがキャッシュされた後でも、元のキーにアクセスする必要があります。基本的に、それらは次のような配列構造体である必要があります。
struct Entry {
/* Key is actually a complex struct itself with string, and params */
Key key;
Data* data;
}