comp.lang.ada
 help / color / mirror / Atom feed
From: Jere <jhb.chat@gmail.com>
Subject: Re: Tally
Date: Wed, 15 Jan 2020 15:09:53 -0800 (PST)
Date: 2020-01-15T15:09:53-08:00	[thread overview]
Message-ID: <d097db6b-b30c-4cbd-8343-b18592d924bc@googlegroups.com> (raw)
In-Reply-To: <lyo8v5ytv3.fsf@pushface.org>

On Wednesday, January 15, 2020 at 4:03:14 AM UTC-5, Simon Wright wrote:
> Brad Moore  writes:
> 
> >    for Number of Input loop
> >       Counts (Number) := Counts (Number) + 1;
> >    end loop;
> 
>    for Number of Input loop
>       if Counts.Contains (Number) then
>          Counts (Number) := Counts (Number) + 1;
>       else
>          Counts.Insert (Number, 1);
>       end if;
>    end loop;
> 
> and then of course
> 
>    for C in Counts.Iterate loop
>       Put_Line (Count_Maps.Key (C)'Image
>                   & " -> "
>                   & Count_Maps.Element (C)'Image);
>    end loop;

I might recommend using insert every iteration and seeing if
it fails or succeeds.  Since it gives a cursor regardless of
success, you can use that get the element and avoid doing
all the searches each time:

    for Number of Input loop
    
        -- Try to insert a new element.  This will 
        -- fail if the element already exists
        Counts.Insert
            (Key => Number,
             New_Item => 1,
             Position => Position,
             Inserted => Inserted);
    
        -- Since the element already exists, simply
        -- increment the count
        if not inserted then
            Counts(Position) := Counts(Position) + 1;
        end if;

    end loop;

  reply	other threads:[~2020-01-15 23:09 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-14 15:27 Tally Gilbert Gosseyn
2020-01-14 16:22 ` Tally Niklas Holsti
2020-01-14 17:28   ` Tally Simon Wright
2020-01-15 11:52     ` Tally Simon Wright
2020-01-14 21:08 ` Tally Jeffrey R. Carter
2020-01-15  3:40   ` Tally Brad Moore
2020-01-15  9:03     ` Tally Simon Wright
2020-01-15 23:09       ` Jere [this message]
2020-01-16 11:34         ` Tally Simon Wright
2020-01-16 15:35           ` Tally Brad Moore
2020-01-16 20:20             ` Tally Randy Brukardt
2020-01-16 22:03               ` Tally Jeffrey R. Carter
2020-01-16 22:00             ` Tally Jeffrey R. Carter
2020-01-16 22:25               ` Tally Simon Wright
2020-01-17  2:51                 ` Tally Brad Moore
2020-01-17  3:08       ` Tally Brad Moore
replies disabled

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