std::mapでの検索
Posted: 2009年6月02日(火) 23:01
例えば、あるクラス「Life」があります。
Lifeはint型の変数を一つ持っており、
そのLifeの実体が何百個もある時に、
そのint型の変数で、10の要素を持つLifeを
何でもいいから一つ検索したいとします。
検索しやすくするために、Lifeのデータをstd::mapに入れることにし、
また、そのint型の変数は短時間に多く変動するので、
std::mapのキーとして、そのint型の変数のポインタを入れることにしました。
std::map<int*, Life*>
最終的に、このようなデータ構造になったのですが、
ここで、find関数でキーの検索を行おうとすると、
int*の変数を渡さなければいけませんよね?
私が求めているのは値の検索で、アドレスの検索ではありません。
このような状況で、
②find関数で、アドレスではなく値を比較することは可能か
③その他の方法で、なるべく高速に検索するものはあるか
ということを聞きたいです。
わかりにくい文章だとは思いますが、どなたか回答お願いします。
Lifeはint型の変数を一つ持っており、
そのLifeの実体が何百個もある時に、
そのint型の変数で、10の要素を持つLifeを
何でもいいから一つ検索したいとします。
検索しやすくするために、Lifeのデータをstd::mapに入れることにし、
また、そのint型の変数は短時間に多く変動するので、
std::mapのキーとして、そのint型の変数のポインタを入れることにしました。
std::map<int*, Life*>
最終的に、このようなデータ構造になったのですが、
ここで、find関数でキーの検索を行おうとすると、
int*の変数を渡さなければいけませんよね?
私が求めているのは値の検索で、アドレスの検索ではありません。
このような状況で、
②find関数で、アドレスではなく値を比較することは可能か
③その他の方法で、なるべく高速に検索するものはあるか
ということを聞きたいです。
わかりにくい文章だとは思いますが、どなたか回答お願いします。