我们什么时候应该使用 Indefinite_Hashed_Maps 或 Hashed_Maps

发布于 2024-10-19 10:15:00 字数 92 浏览 3 评论 0原文

我对何时使用 Ada.Containers.Indefinite_Hashed_Maps 或 Hashed_Maps 感到困惑。

这两个通用包有什么区别?

I'm confused about when to use Ada.Containers.Indefinite_Hashed_Maps or Hashed_Maps.

What is the difference between the two generic packages?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一场春暖 2024-10-26 10:15:00

Ada.Containers.Indefinite_Hashed_Maps 包支持键和元素的不确定类型。不定类型是需要附加约束来声明对象的类型。示例:String、T'Class、具有变体部分的类型。

Hashed_Maps 实现能够将键和元素存储在映射实现记录(无论是表还是树)中。这是两者之间最有效的实现。

由于附加约束,Indefinite_Hashed_Maps 无法轻松存储键和元素。大多数实现必须使用对键和元素的访问
来存储它们。每次添加元素时,都需要额外的内存分配来存储键和元素。

尽管 Indefinite_Hashed_Maps 适用于有限类型,但如果键和元素类型是确定的,最好使用 Hashed_Maps。

The Ada.Containers.Indefinite_Hashed_Maps package supports types that are indefinite for the key and element. An indefinite type is a type that needs an additional constraint to declare an object. Example: String, T'Class, a type with a variant part.

The Hashed_Maps implementation is able to store the key and element within the map implementation records (be it a table or a tree). This is the most efficient implementation between the two.

The Indefinite_Hashed_Maps cannot store the key and element as easily due to the additional constraint. Most implementation will have to use an access to the key and to the element
to store them. Each time an element is added, an additional memory allocation is required to store the key and element.

Although Indefinite_Hashed_Maps works for finite types, it is best to use Hashed_Maps if the key and element types are definite.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文