2

任意の数の混合インデックス (整数、文字列、またはその両方) を取ることができる動的連想配列をどのように実装しますか?

たとえば、people[3].locationのシンタックス シュガーとして提供することで、構造をシミュレートすることを目指していpeople[3, "location"]ます。この種の配列を内部的にどのように表現することをお勧めしますか?

ところで、私は C を使用しており、移植性の理由から、標準ライブラリしか使用できません。

ご提案いただきありがとうございます。

編集: 明確にするために、C で記述されたプログラミング言語インタープリターの混合インデックスを使用して動的連想配列を実装する方法を尋ねています。問題のインタープリターは実際にはYabasicですが、特に関連性はありません。

[]編集:ではなく配列構文に使用するように変更されまし()た。

4

3 に答える 3

1

そのような機能を提供し、Cで書かれているオープンソースプロジェクトを見てください。両方とも強力な連想配列を持っているperlとemacsを思い出してください。perlではハッシュ実装であり、emacsではシンボル処理です。おそらく、そこからインスピレーションを得ることができます。

于 2010-06-28T08:19:21.333 に答える
0

文字列キーのハッシュ テーブルと整数キーのベクトルを使用し、どちらも同じデータを指している可能性があります。

PHP が配列を処理する方法を考えています: http://www.php.net/manual/en/language.types.array.php

于 2010-08-11T15:21:00.340 に答える
0

Red-Black ツリーや AVL ツリーなどのバイナリ ツリーを使用します。ウィキペディアには、両方に関するいくつかのOK情報があります。

[]編集: C では添字演算子をオーバーロードできません。

于 2010-06-28T06:39:49.743 に答える