如何实现可以采用任意数量的混合索引(整数,字符串或两者)的动态关联数组?
我的目标是通过提供people[3].location
作为people[3, "location"]
的句法糖来模拟结构。你会如何建议在内部表示这种数组?
顺便说一句,我使用的是C语言,出于可移植性的原因,我只能使用标准库。
感谢您的建议!
编辑:为了澄清,我问如何用C语言编写的编程语言解释器实现具有混合索引的动态关联数组。所讨论的解释器实际上是{{3}但是,这并不是特别相关。
修改:更改为使用[]
表示数组语法,而不是()
。
答案 0 :(得分:1)
了解提供此类功能并使用C语言编写的开源项目。请记住perl和emacs,它们都具有强大的关联数组。在perl中,它是他们的哈希实现,并在emacs lisp中进行符号处理。也许你可以从中获得灵感。
答案 1 :(得分:0)
使用二叉树,如红黑树或AVL树。维基百科对它们都有一些好的信息。
编辑:您不能重载C中的下标[]
运算符。
答案 2 :(得分:0)
我可能会找一个字符串键的哈希表,可能是整数键的向量,两者都指向相同的数据。
我正在考虑php处理数组的方式:http://www.php.net/manual/en/language.types.array.php