連想配列 setとmapはどちらが速いのか

Linked List Cycleを解くときに連想配列を使用したが、連想配列のset、unordered_set、map、unordered_mapはどれが速いのか比べてみた。比較方法はLinked List Cycleの実効値を比べる。

unorderedはソートを行わないので、unordered有りが速い予想ではあるが、setとmapはどちらが速いのだろうか?

 

結果

配列名 速度(ms) memory(MB)
unordered_map 24 11.2
map 32 11
unordered_set 24 10.5
set 32 11

 

unorderdのある方とない方はそれぞれが同じ速度となった。ただし使用Memoryが異なっていた。

 

結論

どちらも使える状況ならば、好きな方を使えばいいなという結果でした。