map和hashmap效能測試

2021-09-26 10:56:39 字數 1900 閱讀 3577

測試**

#include "stdafx.h"

#include #include #include #include #include #include #include #include #pragma comment(lib,"psapi.lib")

#define data_size 100000

#define search_data 1000000

void showmemoryinfo(void)

void main()

std::cout << std::endl << std::endl;

for (int i = 0; i < search_data; i++)

showmemoryinfo();

std::cout << std::endl << std::endl;

//seach --set

timespan span;

span.start();

std::multisetsets;

for each (auto one in datas)

std::cout << "set build use time : " << span.elapsed() << std::endl;

span.restart();

for each (auto one in searchs)

std::cout << "set use time : " << span.elapsed() << std::endl;

showmemoryinfo();

std::cout << std::endl << std::endl;

//search - hashset

span.restart();

std::hash_multisethsets;

for each (auto one in datas)

std::cout << "hashset use time : " << span.elapsed() << std::endl;

span.restart();

for each (auto one in searchs)

std::cout << "hashset use time : " << span.elapsed() << std::endl;

showmemoryinfo();

std::cout << std::endl << std::endl;

//normal search

span.restart();

for each (auto one in searchs)

std::cout << "normal use time : " << span.elapsed() << std::endl;

showmemoryinfo();

// redirect cout to /dev/null

ofs.close();

}

測試結果

記憶體使用:6905k/6905k + 5050k/5050k

set build use time : 51

set use time : 382

記憶體使用:10149k/10149k + 8269k/8269k

hashset use time : 24

hashset use time : 52

記憶體使用:13643k/13643k + 11771k/11771k

normal use time : 9810

記憶體使用:13643k/13643k + 11771k/11771k

可以看出

1. 資料隨機性比較大的情況下,hashmap的效能是最好的, 建表時間也優於map。

2. 記憶體使用hashmap和map差不多。

hash map和map的區別

這裡列幾個常見問題,應該對你理解和使用hash map比較有幫助。4.1 hash map和map的區別在 4.2 什麼時候需要用hash map,什麼時候需要用map?總 體來說,hash map 查詢速度會比map快,而且查詢速度基本和資料量大小無關,屬於常數級別 而map的查詢速度是log n...

map和hash map的比較

hash map和map的區別在 建構函式。hash map需要hash函式,等於函式 map只需要比較函式 小於函式 儲存結構。hash map採用hash表儲存,map一般採用紅黑樹 rb tree 實現。因此其記憶體資料結構是不一樣的。什麼時候需要用hash map,什麼時候需要用map?ha...

hash map和map的區別

這裡列幾個常見問題,應該對你理解和使用hash map比較有幫助。4.1 hash map和map的區別在 4.2 什麼時候需要用hash map,什麼時候需要用map?總 體來說,hash map 查詢速度會比map快,而且查詢速度基本和資料量大小無關,屬於常數級別 而map的查詢速度是log n...