#include <iostream>
#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;}