1. 程式人生 > >比較測試map、unodered_map、unordered_set效能效率,整型數值查詢

比較測試map、unodered_map、unordered_set效能效率,整型數值查詢

測試環境:

centos 6.5

gcc 4.4.3

使用boost庫生成均勻分佈的隨機正整形數字。

1、分別建立三個資料集物件

typedefunsignedintUINT32;

std::unordered_map<UINT32,UINT32> test_map1;

std::map<UINT32,UINT32> test_map2;

std::unordered_set<UINT32> test_set2;

2、建立1000 000個0~999999之間的隨機數字

每次測試分別將完全相同的隨即數字組,分別放入三個容器。

3、僅測試查詢的時間。一樣是查詢1000 000次。用find函式。

結果如下。r後面的數字表示,隨即查詢命中的次數。

後三個數字分別是對應的查詢時間,單位是ms。

 r:95092

test_map1:146ms
test_set2:  153 
test_map2:279 

 r:95213
134
137 
276 

r:95222
150 
139 
287 

r:95227
134 
136 
280 

 r:95205
133
132 
273 

結果來說:

unodered_map、unordered_set不相上下

但是map效能略微差一些。

之前我做過樣本資料小一點的測試,大約10000個數字,依然是map效能差一些。

根據本次測試,

我會優先選用unodered_map、unordered_set做測試。