我对何时使用Ada.Containers.Indefinite_Hashed_Maps或Hashed_Maps感到困惑。
两个通用软件包有什么区别?
答案 0 :(得分:3)
Ada.Containers.Indefinite_Hashed_Maps包支持对键和元素不确定的类型。不定类型是需要额外约束来声明对象的类型。示例:String,T'Class,具有变体部分的类型。
Hashed_Maps实现能够将键和元素存储在映射实现记录中(无论是表还是树)。这是两者之间最有效的实现。
由于附加约束,Indefinite_Hashed_Maps无法轻松存储密钥和元素。大多数实现都必须使用对密钥和元素的访问 存储它们。每次添加元素时,都需要额外的内存分配来存储密钥和元素。
虽然Indefinite_Hashed_Maps适用于有限类型,但如果键和元素类型是明确的,最好使用Hashed_Maps。