在许多编译器中,标准数据结构类似于Set,Map并Multimap在后面使用Red-Black-Trees,并multimap存储多个和重复的键.
我有一个关于以下引用的问题:
"红黑树唯一地存储密钥,并且只为每个密钥绑定一个DataValue"
multimap(如C++ STL所做的那样)?1)不,不是真的.
2)修改单个映射红黑树以将键映射到多个值将是微不足道的.它只需要使用第二个数据结构和映射键 - >集合.
例如,您可以从字符串映射到int的向量,而不是从字符串映射到int.或者是一个链接的整数列表的字符串.或者是单映射RBT的字符串.所以:).
重温#1:从技术上讲,仍然会将键映射到单个值,只是值不是直接映射的类型.根据您认为的"DataValue",然后是,该语句为真.
而且,辅助数据结构实际上不是必需的; 它只是简化了遍历.基本上为了适应重复,而不是严格小于/大于父/左和父/右之间的关系,你有一个方面也包括相等.
例如:
5
3 7
3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
778 次 |
| 最近记录: |