C++相談室 part119 [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0021デフォルトの名無しさん
2015/08/31(月) 23:12:33.08ID:4UR705Ml何か知らんが、フリーリスト用の配列に、開放されたリソースのIDをpushしておけばよいだけ
新規リソースにIDを割り当てる時は、フリーリストから1つ取ってきて、割り当てればよい
面倒ならフリーリストはなくても良いだろうな
この場合、IDを割り当てるたびに、先頭から空いているIDを探さなければならないが、
配列は連続したメモリ領域なので、この処理はキャッシュに乗りやすい類の処理だ
一方で、mapへの追加は、想像よりも遅いだろう
挿入箇所を探すのに、値を比較をしながら、ポインタをたどらなければならない(キャッシュに乗りにくい)
大体は赤黒木なので、バランスをとる作業も入る
毎回newが発生する
ちなみに赤黒木はこんな感じのアルゴリズム
http://www.moon.sannet.ne.jp/okahisa/rb-tree/
■ このスレッドは過去ログ倉庫に格納されています