連想コンテナ(1)
struct XxxData { int id; // データ類 }; int Xxx::getIndex( int id) { int i = 0; for( std::vector::iterator it = xxxDataSet.begin(); it!=xxxDataSet.end(); ++it,++i) { if ((*it).id==id) return i; } return -1; }
のように,構造体の中にidを入れてそれをvectorに突っ込んで管理させていたところ,偶然,連想コンテナ(mapとか)を使えばいいじゃないと本にあったので,自作してみることにする.
mapはSTLPortの中を覗くと木構造でデータを管理しているっぽいけれど,自分が使う用途としては最初にリストを作成して,あとは検索するだけのパターンが多いので,vectorで管理してみる.木構造を使わなくても,idでソートしておけば二分探索できるから検索性能はそれほど変わらないはず.
探せば同じような機能で,ちゃんとした実装があると思うけど,とりあえずは答えを見ずに自分で作ってみる.
連想コンテナ(1) - ロバの耳
連想コンテナ(2) - ロバの耳
連想コンテナ(3) - ロバの耳
連想コンテナ(4) - ロバの耳
連想コンテナ(5) - ロバの耳
連想コンテナ(6) - ロバの耳
連想コンテナ(7) - ロバの耳