写个小程序对map的效率有个直观的认识,经过实际的测试发现map查询的速度比储存的速度要快一点。map通常是通过红黑树实现的,map的查找速度是log(n)级别。
#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<map>
#include<ctime>
using namespace std;
map<int,int > Hash;
int main()
{
int x=time(0);
for(int i=1;i<=10000000;i++)
{
Hash[i]=i;
}
cout<<(time(0)-x)<<endl;
x=time(0);
for(int i=1;i<=10000000;i++)
{
Hash[i];
}
cout<<(time(0)-x)<<endl;
}