map.c
上传用户:gzelex
上传日期:2007-01-07
资源大小:707k
文件大小:1k
开发平台:

MultiPlatform

  1. #include <LEDA/map.h>
  2. #include <LEDA/h_array.h>
  3. #include <LEDA/d_array.h>
  4. #include <LEDA/dph_array.h>
  5. main()
  6.   int N0[10000];
  7.   int i;
  8.   for(i=0; i<1000; i++) N0[i] = 0;
  9.   map<int,int>       M(0);
  10.   h_array<int,int>   N1(0);
  11.   d_array<int,int>   N2(0);
  12.   dph_array<int,int> N3(0);
  13.   int n = read_int("n = ");
  14.   int* A = new int[n];
  15.   rand_int.set_seed(1234*n);
  16.   for(i=0; i<n; i++)  A[i] = rand_int(1,9999);
  17.   float T = used_time();
  18.   for(i=0; i<n; i++)  N0[A[i]]++;
  19.   cout << string("c++ array: %.2f sec",used_time(T)) << endl; 
  20.   T = used_time();
  21.   for(i=0; i<n; i++)  M[A[i]]++;
  22.   cout << string("map:       %.2f sec",used_time(T)) << endl; 
  23.   T = used_time();
  24.   for(i=0; i<n; i++)  N1[A[i]]++;
  25.   cout << string("h_array:   %.2f sec",used_time(T)) << endl; 
  26.   for(i=0; i<n; i++)  N2[A[i]]++;
  27.   cout << string("d_array:   %.2f sec",used_time(T)) << endl; 
  28.   for(i=0; i<n; i++)  N3[A[i]]++;
  29.   cout << string("dph_array: %.2f sec",used_time(T)) << endl; 
  30.   for(i=1; i<1000; i++)
  31.     if (M[i]  != N0[i] || N1[i] != N0[i] || N2[i] != N0[i] || N3[i] != N0[i]) 
  32.       cout << "ERROR" << endl;
  33.   return 0;
  34. }