具有用户指定维度的数组(或关联数组)
Array (or associative array) with user-specified dimensions
我正在尝试考虑用于存储语法范式的适当数据结构。我想要类似关联数组的东西,但具有任意数量的维度。在简单的情况下,很容易想到数据结构。如果范式的两个维度如下...
性别(男性、女性、中性)
格(主格、宾格、格格、属格)
。那么在 C++ 中使用哈希映射或在 PHP 中使用关联数组是有意义的:
$value['Masculine']['Accusative'] = 'foo';
$value['Neuter']['Dative'] = 'foo';
问题在于,对于给定的语言,任何数量的"维度"都可能很重要。(肯定有上限,但事先不知道那是什么。我希望用户指定重要值是什么,并且能够动态更改它们。
是否有任何类型的数据结构具有这种灵活性,或者我需要用一个特殊的类或类似的东西创建自己的数据结构?
按照 lorro 的回答并在这个问题上,可以通过创建一个以向量或设置为键的 has 数据结构来完成。
这是一个Qt方法;大概它与std工具类似。
QHash< QSet<QString> , QString > paradigm;
QSet<QString> descriptor1;
descriptor1 << "Nominative" << "Masculine";
paradigm[descriptor1] = "foo";
QSet<QString> descriptor2;
descriptor2 << "Neuter" << "Dative";
paradigm[descriptor2] = "bar";
QSet<QString> descriptor3;
descriptor3 << "Feminine" << "Genitive";
qDebug() << paradigm.value(descriptor1, "No value")
<< paradigm.value(descriptor2, "No value")
<< paradigm.value(descriptor3, "No value");
输出:
"foo" "bar" "No value"
但是,PHP 数组只能由字符串和整数键控,因此 PHP 需要不同的方法。
相关文章:
- 查找自动生成键并具有线性内存消耗的小型关联数组
- 创建一个结构的关联数组,以创建一个缓冲区,供键快速访问
- 如何使用 PHPCPP 传递对象数组,遍历每个对象并返回关联数组
- 如何实现轻量级快速关联数组
- 如何在C++中实现多维关联数组
- C++ - 使用关联数组,按值排序后无法按键搜索
- STL中关联数组(贴图)的速度
- Qt JSON 编码关联数组和对象
- 将数组与可变模板相关联
- C++相当于Perl的Tie::IxHash(索引关联数组)?
- C++交换成员数组和关联的指针
- 对字符串数组的关联
- 为什么只有非常量映射提供类似于关联数组的直接元素检索?
- c++ 0x 3d map初始化类似于php的关联数组
- 这段代码是在c++中访问类中的关联数组吗?
- 如何在内容保持关联的同时按字母顺序对结构数组进行排序
- 我怎么能有一个关联数组与许多值
- 如何从一个Node.js c++插件传递一个关联数组到js代码
- 如何绑定/关联一个对象引用与new[](数组)
- 关联数组的含义是什么?