Isa@Diary

ソフトウェア開発やってます。プログラミングとか、US生活とかについて書きます。

mapとunordered_map

概要

去年のGoogleDeveloperDayの15パズルもどきのときに、状態を管理するmapの要素数が多いのでC++11で追加されたunordered_mapにするとinsertもfindも早くなるんでね、と思って使ってみたのを思い出したので、ざっとどのくらいか試してみた。

やったこと

10^7要素のinsert

+map<int,int> m;
-unordered_map<int,int> m;
for(int i=0;i<10000000;i++){
    m[i] = i;
}

結果(g++,-O3)

map          :5.23sec
unordered_map:1.16sec

結論

はやい。
ソートする必要がない場合&&C++11が使える場合は使うといいかもしれない。