- 558 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 16:30:20 ]
- 自前の関数のほうが断トツで早かった
#include <iostream> #include <vector> #include "crc.h" #include <bitset> #include <time.h> using namespace std; main(){ #define N 8200000 int n,m,cl; char *rnd =new char[N]; for(n=0;n<N;n++)rnd[n]=rand()&1; cl=clock(); bitset<N> a; for(m=0;m<10;m++)for(n=0;n<N;n++)a[n]=rnd[n]; cl=clock()-cl;cout<<cl<<endl; cl=clock(); vector<bool> b(N); for(m=0;m<10;m++)for(n=0;n<N;n++)b[n]=rnd[n]; cl=clock()-cl;cout<<cl<<endl; cl=clock(); unsigned int k,l, *c=new unsigned int [1+(N>>5)]; for(n=0;n<(N>>5);n++)c[0]=0; for(m=0;m<10;m++)for(n=0;n<N;n++){ k=n>>5; l=n&31; c[k] |= (rnd[n]<<l);} cl=clock()-cl;cout<<cl<<endl; }
|

|