【发布时间】:2016-11-17 23:44:51
【问题描述】:
我正在尝试考虑存储语法范式的适当数据结构。我想要一个类似关联数组的东西,但具有任意数量的维度。在一个简单的情况下,很容易想到数据结构。如果范式的两个维度如下……
性别(男性、女性、中性)
格(主格、宾格、与格、属格)
...那么在 C++ 中使用哈希映射或在 PHP 中使用关联数组是有意义的:
$value['Masculine']['Accusative'] = 'foo';
$value['Neuter']['Dative'] = 'foo';
问题在于,对于给定的语言,任何数量的“维度”都可能很重要。 (肯定有一个上限,但我不知道那是什么。)我希望用户指定重要的值是什么,并且能够动态更改它们。
是否有任何类型的数据结构具有这种灵活性,或者我是否需要使用特殊的类或类似的东西创建自己的?
【问题讨论】:
-
那么问题是什么?
-
您确定要从 (Gender, Case) 映射到 Something,而不是将每个 Something 与 (Gender, Case) 关联吗?
-
数组已经有任意数量的维度和任意标量值作为键,无论 php 的内存限制是多少。
-
可能最简单的方法就是这样:
std::map<std::vector<std::string>, std::string>,虽然语法会有所不同,比如:v[{"a", "b", "c"}] = "d";。 -
可以用伪代码写你想达到什么目的?
标签: php c++ arrays data-structures hash