3

我不确定这叫什么,所以我不知道谷歌要学习如何做到这一点。

我正在用 C 编程。

我有一个整数数组,我希望用字符命名;

例如

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

等等等等

然后是整数数组,假设整数数组称为索引。

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

等等等等

谢谢,

4

2 回答 2

1

这被称为关联数组。在 shell 编程中,我们有关联数组。在 c++ 和 java 中,我们可以使用 Maps [HashMap, TreeMap] 来实现这一点

Map<Key,Value>

key用于标识值;键应该是唯一的。

我认为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

您正在寻找哈希映射或哈希表(同一事物的两个名称)。这些不是数组,即使它们在某些语言中被错误地命名(我看着你,PHP)。根据定义,数组是一个内存区域,该区域使用该区域的偏移量进行索引,这意味着您必须使用数字对其进行索引。

哈希映射在查找键之前对键应用哈希函数,因此它们将字符串键转换为数字。

于 2013-05-26T09:07:29.650 回答