これが何と呼ばれているのかわからないので、これを行う方法を学ぶためにグーグルで検索する方法がわかりません。
私はCでプログラミングしています。
文字で名前を付けようとしているintの配列があります。
例えば
char s1[21] = "firsta1"
char s2[21] = "seconds2"
などなど
次に、intの配列がindexと呼ばれると仮定して、intの配列のようなもの。
index[s1] = 7
index[s2] = 14
などなど
ありがとう、
これを連想配列と言います。シェルプログラミングでは、連想配列があります。C++ と Java では、マップ [HashMap、TreeMap] を使用してこれを実現できます。
Map<Key,Value>
キーは値を識別するために使用されます。キーは一意である必要があります。
Cにはこのための機能が組み込まれているとは思いません。他の方法でこれを達成できるかもしれません。
これらの文字列 s[21]="str" を作成します...ハッシュなどの関数に渡します。
hash(char *str)
{
// Keep a cache (a table here its array)
lookup the string in table;
if(present)
return index;
else
store str in table with appropriate index;
}
使用する
array[hash(str)]
あなたがしたいことをする。これは私の考えですが、他にも最善の方法がいくつかあるかもしれません。または一部のライブラリ (例: Boost) には連想配列がある場合があります。
ハッシュ マップまたはハッシュ テーブル (同じものの 2 つの名前) を探しています。一部の言語では間違って名前が付けられていても、これらは配列ではありません(私はあなたを見ています、PHP)。配列は定義上、領域へのオフセットでインデックス付けされたメモリ領域です。つまり、番号でインデックス付けする必要があります。
ハッシュ マップは、キーを検索する前にキーにハッシュ関数を適用するため、文字列キーを数値に変換します。