hyt*_*day 4 c++ unordered-map hashmap map
我用这段代码测试了它们(在Visual Studio 2010 sp1上):
#include <ctime>
#include <iostream>
#include <map>
#include <unordered_map>
#include <hash_map>
int main()
{
clock_t time;
int LOOP = (1 << 16);
std::map<int, int> my_map;
std::unordered_map<int, int> map_unordered_map;
std::hash_map<int, int> my_hash_map;
time = clock();
for (int i = 0; i != LOOP; ++i)
{
my_map[i] = i;
}
std::cout << "map: " << ((double)(clock() - time) / CLOCKS_PER_SEC) << std::endl;
time = clock();
for (int i = 0; i != LOOP; ++i)
{
map_unordered_map[i] = i;
}
std::cout << "unordered_map: " << ((double)(clock() - time) / CLOCKS_PER_SEC) << std::endl;
time = clock();
for (int i = 0; i != LOOP; ++i)
{
my_hash_map[i] = i;
}
std::cout << "hash_map: " << ((double)(clock() - time) / CLOCKS_PER_SEC) << std::endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
结果很奇怪:
在DEBUG中:map:0.289 unordered_map:10.738 hash_map:10.58按任意键继续...
在RELEASE中:map:0.101 unordered_map:0.463 hash_map:0.429按任意键继续...
结论:这不太可能告诉您有关数据结构的更多信息.