🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #334912

Re: TDictionary<> i kolejnosc dodawania

#334912
From: wloochacz
Date: Wed, 25 Jan 2012 11:58
32 lines
2508 bytes
W dniu 2012-01-25 12:45, R.e.m.e.K pisze:
> Co moglbym w nim zmienic? Wszak on idzie po kolei po tablicy i bierze
> wartosc jesli nie jest pusta (skasowana), z kolei podczas dodawania pozycja
> jest wstawiana zaleznie od funkcji haszujacej, ktora opiera sie chyba o
> algorytm jakiegos rodzaju drzewa, i to jest "problem" bo juz wstawianie moze
> (chyba) zaburzac porzadek.
Aleś Ty kombinujesz...

Po prostu kiedy dodajesz do TDictionary nowy element zapamiętaj jego 
indeks + licznik elementu  (po prostu zwiększaj go o jeden przy 
dodawaniu; imho nawet nie trzeba go dekrementować przy usuwania elementu 
ze słownika); dzięki temu będziesz wiedział, kiedy został dodany (w 
jakiej kolejności) dany element.
zapamiętaj taką parę np. w TList<integer, integer>;
Enumerator do TDictionary napisz tak, aby iterował po TList<integer, 
integer> i zwracał odpowiedni element tablicy.


>> >  Pamiętaj, że TDictionary posiada trzy enumeratory (TPairEnumerator,
>> >  TValueEnumerator i TKeyEnumerator) dla trzech kolekcji: para (Key =
>> >  Value), ale nie musisz ich implmentować jeśli posługujesz się np. tylko
>> >  enumeratorem TPair<T, T>;
> Generalnie chwilowo temat odpuszczam, bo nie jest to tak trywialne jak
> myslalem poczatkowo, musze dokladniej przyjrzec sie tym algorytmom, bo to
> ciekawe, ale priorytet ma na razie niski, zrobilem sobie na TList<>.
IMO to jest trywialne, tylko jakoś tak dziwnie się do tego zabierasz...

> btw fajnie, ze w koncu sa szybkie implementacje list, slownikow etc.
No, fajnie.

-- 
wloochacz
Technical Details
Message-ID: <jfoqoe$i80$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <1ap3bo51k49nb.dlg@hell.heaven> <jfm2a6$rep$1@inews.gazeta.pl> <1k03j6la3pijr$.dlg@hell.heaven>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: wloochacz <wloochacz@nospam.nie.gmail.com>
Newsgroups: pl.comp.lang.delphi
Subject: Re: TDictionary<> i kolejnosc dodawania
Date: Wed, 25 Jan 2012 12:58:05 +0100
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 32
Message-ID: <jfoqoe$i80$1@inews.gazeta.pl>
References: <1ap3bo51k49nb.dlg@hell.heaven> <jfm2a6$rep$1@inews.gazeta.pl> <1k03j6la3pijr$.dlg@hell.heaven>
NNTP-Posting-Host: mainframe.rene.com.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1327492686 18688 193.239.124.200 (25 Jan 2012 11:58:06 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Wed, 25 Jan 2012 11:58:06 +0000 (UTC)
X-User: wloochacz
In-Reply-To: <1k03j6la3pijr$.dlg@hell.heaven>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0) Gecko/20111222 Thunderbird/9.0.1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit