Article View: pl.comp.lang.delphi
Article #334912Re: TDictionary<> i kolejnosc dodawania
From: wloochacz
Date: Wed, 25 Jan 2012 11:58
Date: Wed, 25 Jan 2012 11:58
32 lines
2508 bytes
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-mailReferences:
<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