我不确定这是什么,所以我不知道谷歌要学习如何做到这一点。
我在C编程。
我有一系列的整数,我希望用字符命名;
例如
char s1[21] = "firsta1"
char s2[21] = "seconds2"
等等
那么int的数组,假设int数组被称为index。
index[s1] = 7
index[s2] = 14
等等。
感谢,
答案 0 :(得分:1)
据说这是关联数组。在shell编程中,我们有关联数组。在c ++和java中,我们可以使用Maps [HashMap,TreeMap]
来实现这一点Map<Key,Value>
键用于标识值;键应该是唯一的。
我认为C没有内置设施。也许你可以通过其他方式实现这一点。
你创建那些字符串s [21] =“str”...将它传递给某个函数,例如hash。
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)可能具有关联数组。
答案 1 :(得分:-1)
您正在寻找哈希映射或哈希表(同一事物的两个名称)。那些不是数组,即使它们在某些语言中被错误地命名,所以在(我看着你,PHP)。根据定义,数组是一个存储区域,索引为区域中的偏移量,这意味着您必须使用数字对其进行索引。
哈希映射在查找之前在键上应用哈希函数,因此它们将字符串键转换为数字。