libsavaのKDTree
libsava の KDTree に何が実装されているのかもう少し詳しく見てみた
KDTree コンテナクラスのpublicメンバ関数
スピードはあまり早くない。getを使ったほうがスピードは速い、とのこと
挿入
insert
点 (このパッケージが用意しているPoint型、またはその派生型) と値のペアをコンテナに加える。std::map のinsertと仕様をあわせたものと、独自のものの2通りのオーバーロードがあるクエリ
begin, end
画像のラスター走査(左上→右下)のような順で格納されている点を走査できる。beginの引数として左上の座標と右下の座標を指定できて、その指定された範囲に限定して走査できる?find
指定された点がコンテナ内に存在すればそのイテレータ、なければendを返す。スピードはあまり早くない。getを使ったほうがスピードは速い、とのこと
get
指定された点がコンテナ内に存在すればその値を取得できるempty
コンテナ内に点と値のペアが一つでもあればfalse、空だったらtrueを返す[]
std::mapと同様に、値を取得したり、新たに点と値のペアを加えることができる。削除
remove
指定した点を削除。削除した点と関連づけられていた値を取得することもできるerase
removeと同様。STLとあわせるために存在している?clear
木に存在する点と値のペアを全て空にするその他
optimize
木を最適化する... あれ、指定された点とコンテナ中の点のユークリッド距離の近い順に取ることができるっていう関数(k最近傍探索とかいうそうです)がない?これが欲しかったのにorz