プログラム言語 FreeBasic |
辞書(キー、データ)のように機能する連想コンテナ。
キーは順序付けられています。
つまり、並べ替えられた形式になっています。
ハッシュテーブルと同様のインターフェイスを備えており、違いは作業速度だけです。
ほとんどの場合ハッシュテーブルの方が高速ですが、一部のデータでは、マップの方が高速な場合もあります。
必要に応じて、次の例のように、(木探査メソッドを使って)並べ替えられた形式ですべてのキーを取得できます:
#include "window9.bi"
Type MAPSTRUCT
As Zstring Ptr nKey
As Any Ptr nData
As MAPSTRUCT Ptr pLeft
As MAPSTRUCT Ptr pRight
As Byte bHeight
End Type
Type MAPMAINSTRUCT
As MAPSTRUCT Ptr pRoot
As Byte bFlagDelete
As Long iSizeMap
end type
Sub InOrder(pRoot As MAPSTRUCT Ptr)
If pRoot <> 0 Then
inOrder(pRoot->pLeft)
if pRoot->nData then
Print *pRoot->nKey , pRoot->nData
endif
inOrder(pRoot->pRight)
Endif
End Sub
dim p as MAPMAINSTRUCT ptr = CreateMap()
SetValueMap(p , "555" , cast(any ptr , cint(5)))
SetValueMap(p , "111" , cast(any ptr , cint(1)))
SetValueMap(p , "333" , cast(any ptr , cint(3)))
InOrder(p->pRoot)
DeleteMap(p)
Sleep