| Abbrv. | Meaning | Abbrv. | Meaning |
|---|---|---|---|
| T | container type eg Map | H_T | Hash_Type |
| C: T | Container: container type | I_T | Index_Type |
| P: C | Position: Cursor | K_T | Key_Type |
| L, R | Left, Right | Ex_Index | Extended_Index |
| C_T | Count_Type | B | Boolean |
| E_T | Element_Type |
| vectors | lists | hashed maps | ordered maps | hashed sets | ordered sets | |
|---|---|---|---|---|---|---|
| generic | Y | Y | Y | Y | Y | Y |
| type Index_Type is range <>; | Y | |||||
| type Key_Type is private; | Y | Y | ||||
| type Element_Type is private; | Y | Y | Y | Y | Y | Y |
| with function Hash( ... ) return Hash_Type; | on Key | on Element | ||||
| with
function Equivalent_...(L, R: ...) return Boolean; | on Key | on Element | ||||
| with
function "<" (L, R: ... ) return Boolean is <>; | on Key | on Element | ||||
| with function "=" (L, R: E_T) return B is <>; | Y | Y | Y | Y | Y | Y |
| package Ada.Containers.... is | Vectors | Doubly_ Linked_ Lists | Hashed_ Maps | Ordered_ Maps | Hashed_ Sets | Ordered_ Sets |
| pragma Preelaborate( ... ); | Y | Y | Y | Y | Y | Y |
| function Equivalent_...(L, R: ...) return Boolean; | on Key | on Element | ||||
| subtype
Extended_Index ... No_Index: constant Ex_Ind := Ex_Ind'First; | Y | |||||
| type
T is tagged private; pragma Preelaborable_Initialization(T); | Vector | List | Map | Map | Set | Set |
| type
Cursor is private; pragma Preelaborable_Initialization(Cursor); | Y | Y | Y | Y | Y | Y |
| Empty_T: constant T; | Vector | List | Map | Map | Set | Set |
| No_Element: constant Cursor; | Y | Y | Y | Y | Y | Y |
| function "=" (Left, Right: T) return Boolean; | Y | Y | Y | Y | Y | Y |
| function
Equivalent_Sets(L, R: Set) return Boolean; function To_Set(New_Item: E_T) return Set; | Y | Y | ||||
| function
To_Vector(Length: C_T) return Vector; function To_Vector( New_Item: E_T; Length: C_T) return Vector; | Y | |||||
| function
"&" (L, R: Vector) return Vector; function "&" (L: Vector; R: E_T) return Vector; function "&" (L: E_T; R: Vector) return Vector; function "&" (L, R: E_T) return Vector; | Y | |||||
| function
Capacity(C: T) return C_T; procedure Reserve_Capacity( C: T; Capacity: C_T); | Y | Y | Y | |||
| function Length(C: T) return Count_Type; | Y | Y | Y | Y | Y | Y |
| procedure
Set_Length( C: in out T; Length: in C_T); | Y | |||||
| function
Is_Empty(C: T) return B; procedure Clear(C: in out T); | Y | Y | Y | Y | Y | Y |
| function
To_Cursor(C: Vector; Index: Ex_Ind) return Cursor; function To_Index(P: C) return Ex_Ind; | Y | |||||
| function Key(P: C) return K_T; | Y | Y | ||||
| function Element(P: C) return E_T; | Y also Index | Y | Y | Y | Y | Y |
| procedure
Replace_Element( C: in out T; P: C; New_Item: E_T); | Y also Index | Y | Y | Y | Y | Y |
| procedure
Query_Element(P: C; Process: not null acc proc( ... ) ); | in
Element also Index | in Element | in
Key, in Element | in
Key, in Element | in Element | in Element |
| procedure
Update_Element(C: in out T; P: C; Process: not null acc proc( ... ) ); | in
out Elem also Index | in out Elem | in
Key, in out Elem | in
Key, in out Elem | ||
| procedure Move(Target, Source: in out T); | Y | Y | Y | Y | Y | Y |
| procedure
Insert( C: in out Vector; Before: Ex_Ind; New_Item: Vector); procedure Insert( C: in out Vector; Before: Cursor; New_Item: Vector); procedure Insert( C: in out Vector; Before: Cursor; New_Item: Vector; Position: out Cursor); | Y | |||||
| procedure
Insert( C: in out T; Before: C; New_Item: E_T; Count: C_T := 1); | Y also Index | Y | ||||
| procedure
Insert( C: in out T; Before: C; New_Item: E_T; Position: out Cursor; Count: C_T := 1); | Y | Y | ||||
| procedure
Insert( C: in out T; Before: C; Position: out Cursor; Count: C_T := 1); element has default value | Y also Index | Y | ||||
| procedure
Insert( C: in out T; Key: K_T; New_Item: E_T; Position: out Cursor; Inserted: out B); | Y | Y | Y (no key) | Y (no key) | ||
| procedure
Insert( C: in out T; Key: K_T; Position: out Cursor; Inserted: out B); element has default value | Y | Y | ||||
| procedure
Insert( C: in out T; Key: K_T; New_Item: E_T); | Y | Y | Y (no key) | Y (no key) | ||
| procedure
Prepend( C: in out Vector; New_Item: Vector); | Y | |||||
| procedure
Prepend( C: in out T; New_Item: E_T; Count: C_T := 1); | Y | Y | ||||
| procedure
Append( C: in out Vector; New_Item: Vector); | Y | |||||
| procedure
Append( C: in out T; New_Item: E_T; Count: C_T := 1); | Y | Y | ||||
| procedure
Insert_Space( C: in out V; Before: Cursor; Position: out Cursor; Count: C_T := 1); | Y also Index | |||||
| procedure
Include( C: in out T; Key: Key_Type; New_Item: E_T); | Y | Y | Y (no key) | Y (no key) | ||
| procedure
Replace( C: in out T; Key: Key_Type; New_Item: E_T); | Y | Y | Y (no key) | Y (no key) | ||
| procedure
Exclude( C: in out T; Key: Key_Type); | Y | Y | Y (Item not key) | Y (item not key) | ||
| procedure
Delete( C: in out T; P: in out C; Count: C_T := 1); | Y also Index | Y | Y
(no count) also Key | Y
(no count) also Key | Y
(no count) also Element | Y
(no count) also Element |
| procedure
Delete_First( C: in out T; Count: C_T := 1); procedure Delete_Last( C: in out T; Count: C_T := 1); | Y | Y | Y (no count) | Y (no count) | ||
| procedure Reverse_Elements(C: in out T); | Y | Y | ||||
| procedure Swap(C: in out T; I, J: Cursor); | Y also Index | Y | ||||
| procedure
Swap_Links( C: in out List; I, J: Cursor); | Y | |||||
| procedure
Splice( Target: in out List; Before: Cursor; Source: in out List); procedure Splice( Target: in out List; Before: Cursor; Source: in out List; Position: in out Cursor); procedure Splice( Container: in out List; Before: Cursor; Position: Cursor); | Y | |||||
| procedure
Union( Target: in out Set; Source: Set); function Union(L, R: Set) return Set; function "or" (L, R: Set) return Set renames Union; | Y | Y | ||||
| procedure
Intersection( Target: in out Set; Source: Set); function Intersection(L, R: Set) return Set; function "and" (L, R: Set) return Set renames Intersection; | Y | Y | ||||
| procedure
Difference( Target: in out Set; Source: Set); function Difference(L, R: Set) return Set; function "–" (L, R: Set) return Set renames Difference; | Y | Y | ||||
| procedure
Symmetric_Difference( Target: in out Set; Source: Set); function Symmetric_Difference (L, R: Set) return Set; function "xor" (L, R: Set) return Set renames Symmetric_Difference; | Y | Y | ||||
| function
Overlap(L, R: Set) return Boolean; function Is_Subset(Subset: Set; Of_Set: Set) return B; | Y | Y | ||||
| function First_Index(C: T) return Index_Type; | Y | |||||
| function First(C: T) return Cursor; | Y | Y | Y | Y | Y | Y |
| function
First_Element(C: T) return Element_Type; | Y | Y | Y | Y | ||
| function First_Key(C: T) return Key_Type; | Y | |||||
| function Last_Index(C: T) return Ex_Ind; | Y | |||||
| function Last(C: T) return Cursor; | Y | Y | Y | Y | ||
| function
Last_Element(C: T) return Element_Type; | Y | Y | Y | Y | ||
| function Last_Key(C: T) return Key_Type; | Y | |||||
| function
Next(P: C) return Cursor; procedure Next(P: in out C); | Y | Y | Y | Y | Y | Y |
| function
Previous(P: C) return Cursor; procedure Previous(P: in out C); | Y | Y | Y | Y | ||
| function
Find_Index( C: T; Item: E_T; Index: I_T := I_T'First) return Ex_Ind; | Y | |||||
| function
Find(C: T; ... ; P: C := No_Element) return Cursor; | Element | Element | Key (no position) | Key (no position) | Element (no position) | Element (no position) |
| function Element(C: T; Key: K_T) return E_T; | Y | Y | ||||
| function
Reverse_Find_Index( C: T; Item: E_T; Index: I_T := I_T'First) return Ex_Ind; | Y | |||||
| function
Reverse_Find( C: T; ... ; P: C := No_Element) return Cursor; | Element | Element | ||||
| function
Floor(C: T; ...) return Cursor; function Ceiling(C: T; ...) return Cursor; | Key: K_T | Item: E_T | ||||
| function Contains(C: T; ...) return Boolean; | Element | Element | Key | Key | Element | Element |
| function Has_Element(P: C) return Boolean; | Y | Y | Y | Y | Y | Y |
| function
Equivalent_... (L, R: Cursor) return Boolean; function Equivalent_... (L: Cursor; R:...) return Boolean; function Equivalent_... (L:...; R: Cursor) return Boolean; | Keys | Elements | ||||
| function
"<" (L, R: Cursor) return Boolean; function ">" (L, R: Cursor) return Boolean; function "<" (L, Cursor; R: ...) return Boolean; function ">" (L, Cursor; R: ...) return Boolean; function "<" (L:...; R: Cursor) return Boolean; function ">" (L:...; R: Cursor) return Boolean; | Key | Element | ||||
| procedure
Iterate(C: in T; Process: not null acc proc (P: C) ); | Y | Y | Y | Y | Y | Y |
| procedure
Reverse_Iterate(C: in T; Process: not null acc proc (P: C) ); | Y | Y | Y | Y | ||
| generic with function "<" (Left, Right: E_T) return B is <>; package Generic_Sorting is function Is_Sorted(C: T) return Boolean; procedure Sort(C: in out T); procedure Merge(Target, Source: in out T); end Generic_Sorting; | Y | Y | ||||
| generic type Key_Type (<>) is private; | Y | Y | ||||
| with
function Key(Element: E_T) return Key_Type; | Y | Y | ||||
| with
function Hash(Key: K_T) return Hash_Type; | Y | |||||
| with
function Equivalent_Keys ( L, R: Key_Type) return Boolean; | Y | |||||
| with
function "<" (L, R: Key_Type) return B is <>; | Y | |||||
| package Generic_Keys is | Y | Y | ||||
| function
Equivalent_Keys(L, R: Key_Type) return B; | Y | |||||
| function Key(P: C) return Key_Type; | Y | Y | ||||
| function
Element(C: T; Key: K_T) return Element_T; | Y | Y | ||||
| procedure
Replace(C: in out T; Key: Key_Type; New_Item: E_T); procedure Exclude( C: in out T; Key: Key_Type); procedure Delete(C: in out T; Key: Key_Type); | Y | Y | ||||
| function Find(C: T; Key: K_T) return Cursor; | Y | Y | ||||
| function
Floor(C: T; Key: K_T) return Cursor; function Ceiling(C: T; Key: K_T) return Cursor; | Y | |||||
| function
Contains(C: T; Key: K_T) return Boolean; | Y | Y | ||||
| procedure
Update_Element_Preserving_Key (C: in out T; P: C; Process: not null acc proc ( Element: in out E_T) ); | Y | Y | ||||
| end Generic_Keys; | Y | Y | ||||
| private ... -- not specified by the language end Ada.Containers....; | Y | Y | Y | Y | Y | Y |
The Ada Resource Association and its member companies:
|
and Ada-Europe:
|