【初心者歓迎】C/C++室 Ver.43【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0887vector は差がない
2007/10/31(水) 11:47:18#include <vector>
#include <time.h>
#define N 8000000
#define M 80
using namespace std;
vector<int> a;
int *b;
static int e[N];
inline int f(){vector<int>::iterator p=a.begin(),q=a.end();
int k=0;while(1){p=find(p,q,0);if(p==q)break;;k++;p++;}return k;}
inline int g(){int n,k=0;for(n=0;n<N;n++)if(a[n]==0)k++;return k;}
inline int h(){int n,k=0;for(n=0;n<N;n++)if(b[n]==0)k++;return k;}
main(){
int n,k,c,i;
a.resize(N);b=new int [N];
for(n=0;n<N;n++)a[n]=b[n]=e[n]=rand();
k=0;c=clock();for(n=0;n<M;n++)k+=f();
c=clock()-c;cout<<"vector + iterator call "<<c<<"m秒 sum= "<<k<<endl;
k=0;c=clock();for(n=0;n<M;n++)k+=g();
c=clock()-c;cout<<"vector + []アクセス call "<<c<<"m秒 sum= "<<k<<endl;
k=0;c=clock();for(n=0;n<M;n++){for(i=0;i<N;i++)if(a[i]==0)k++;}
c=clock()-c;cout<<"vector埋め込み "<<c<<"m秒 sum= "<<k<<endl;
k=0;c=clock();for(n=0;n<M;n++)k+=h();
c=clock()-c;cout<<"new call "<<c<<"m秒 sum= "<<k<<endl;
k=0;c=clock();for(n=0;n<M;n++){for(i=0;i<N;i++)if(b[i]==0)k++;}
c=clock()-c;cout<<"new埋め込み "<<c<<"m秒 sum= "<<k<<endl;
k=0;c=clock();for(n=0;n<M;n++){for(i=0;i<N;i++)if(e[i]==0)k++;}
c=clock()-c;cout<<"配列埋め込み "<<c<<"m秒 sum= "<<k<<endl;}
■ このスレッドは過去ログ倉庫に格納されています