對於FreePascal來說,找到一些東西是不可能的,因爲所有的搜索都是在某個Delphi相關站點上完成的。是否有FreePascal Dictionary對象?
是否有內置的Dictionary對象?
This page在泛型類下引用「TDictionary」,但我不知道它可能在哪個單元中,或者它是否存在。
對於FreePascal來說,找到一些東西是不可能的,因爲所有的搜索都是在某個Delphi相關站點上完成的。是否有FreePascal Dictionary對象?
是否有內置的Dictionary對象?
This page在泛型類下引用「TDictionary」,但我不知道它可能在哪個單元中,或者它是否存在。
單元fgl
包含freepascal
的基本泛型類。
其中,最接近TDictionary
的是TFPGMap
。
一個示例如何使用這個類可以在這裏找到:Class Map or Dictionary, anyone?
。
忘掉「TFPGMap」。它被實現爲**數組**,對於任何目的來說都太慢了。即使使用實際的陣列也會更快。如果你被迫使用它,你需要將'sorted'設置爲true,那麼它至少使用二進制搜索來讀取數據,而不是線性數據。 – BeniBela
@BeniBela你最終會用到什麼? –
@jj_首先我[將他們全部基準](http://www.benibela.de/fpc-map-benchmark_en.html)。 Rtl-泛型似乎是最好的總體,但我不信任它們在fpc 3.1以下。 (複雜的泛型很棘手,甚至當我打開他們的源代碼時,Lazarus也會崩潰)ghashmap.THashMap是一個好的後備。儘管我最終使用了Bero的[Fast Light Regular Expressions library](https://github.com/BeRo1985/flre)中的哈希映射,因爲我已經在使用該庫來處理正則表達式,並且它的速度令人驚訝地很快 – BeniBela
您可以從Generics.Collections單元使用非常兼容TDictionary:
作品FPC樹幹轉。 30239和更新。
編輯2016年5月8日
Generics.Collections庫已被添加到FPC中繼線RTL-泛型包在r34229。用於Win32 + Lazarus中繼的最新版本的預編譯FPC中繼(帶有Generics.Collections),可用於http://newpascal.org。 Generics.Collections(https://github.com/dathox/generics.collections)的存儲庫仍將用於維護(應與FPC中繼同步)。
單元'fgl'包含定義['here']的泛型類(http://wiki.freepascal.org/Generics#Introduction)。一個使用'TFPGMap'的例子:['Class Map or Dictionary,anyone?'](http://www.lazarus.freepascal.org/index.php?topic=18441.0)。 –
最近的確是fgl.TFPGMap我認爲。 LU RD:讓它成爲一個適當的答案,以便它可以被接受。 –
Google文章在搜索前添加「fpc pascal」 –