comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: How to Iterate over all elements of a hashed_map.
Date: Tue, 29 Oct 2019 16:56:08 -0500
Date: 2019-10-29T16:56:08-05:00	[thread overview]
Message-ID: <qpachq$deo$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: 1559a685-7483-4f2f-8674-d7b61c23bfe8@googlegroups.com

<joakimds@kth.se> wrote in message 
news:1559a685-7483-4f2f-8674-d7b61c23bfe8@googlegroups.com...
> Den tisdag 29 oktober 2019 kl. 15:20:43 UTC+1 skrev Alain De Vos:
>> I found code which takes a different approach, here there is a function 
>> .Iterate public ... ,
>>
>> with Ada.Containers.Indefinite_Hashed_Maps;
>> with Ada.Strings.Hash;
>>
>> with Ada.Text_IO; use Ada.Text_IO;
>>
>> procedure Show_Hashed_Map is
>>
>>    package Integer_Hashed_Maps is new
>>      Ada.Containers.Indefinite_Hashed_Maps
>>        (Key_Type        => String,
>>         Element_Type    => Integer,
>>         Hash            => Ada.Strings.Hash,
>>         Equivalent_Keys => "=");
>>
>>    use Integer_Hashed_Maps;
>>
>>    M : Map;
>>    --  Same as:  M : Integer_Hashed_Maps.Map;
>> begin
>>    M.Include ("Alice", 24);
>>    M.Include ("John",  40);
>>    M.Include ("Bob",   28);
>>
>>    if M.Contains ("Alice") then
>>       Put_Line ("Alice's age is "
>>                 & Integer'Image (M ("Alice")));
>>    end if;
>>
>>    --  Update Alice's age
>>    --  Key must already exist in M.
>>    --  Otherwise an exception is raised.
>>    M ("Alice") := 25;
>>
>>    New_Line; Put_Line ("Name & Age:");
>>    for C in M.Iterate loop
>>       Put_Line (Key (C) & ": " & Integer'Image (M (C)));
>>    end loop;
>>
>> end Show_Hashed_Map;
>
> I confirm that when you want to iterate over a hashed map and want both 
> key and value you need to use the .Iterate function as you do in the 
> example.

That's the reason it exists, of course. Not everything makes sense just with 
elements alone. (A cursor-based iterator is also much more like the existing 
iteration of Ada 95 than the element-based iterators of Ada 2005 and later.)

                          Randy. 



  reply	other threads:[~2019-10-29 21:56 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-29 13:43 How to Iterate over all elements of a hashed_map Alain De Vos
2019-10-29 14:20 ` Alain De Vos
2019-10-29 15:02   ` joakimds
2019-10-29 21:56     ` Randy Brukardt [this message]
2019-10-29 16:48 ` Jeffrey R. Carter
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox