3

これが何と呼ばれているのかわからないので、これを行う方法を学ぶためにグーグルで検索する方法がわかりません。

私はCでプログラミングしています。

文字で名前を付けようとしているintの配列があります。

例えば

char s1[21] = "firsta1"
char s2[21] = "seconds2"

などなど

次に、intの配列がindexと呼ばれると仮定して、intの配列のようなもの。

index[s1] = 7
index[s2] = 14

などなど

ありがとう、

4

2 に答える 2

1

これを連想配列と言います。シェルプログラミングでは、連想配列があります。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) には連想配列がある場合があります。

于 2013-05-26T09:08:46.163 に答える
-1

ハッシュ マップまたはハッシュ テーブル (同じものの 2 つの名前) を探しています。一部の言語では間違って名前が付けられていても、これらは配列ではありません(私はあなたを見ています、PHP)。配列は定義上、領域へのオフセットでインデックス付けされたメモリ領域です。つまり、番号でインデックス付けする必要があります。

ハッシュ マップは、キーを検索する前にキーにハッシュ関数を適用するため、文字列キーを数値に変換します。

于 2013-05-26T09:07:29.650 に答える