Tip_高维寻址

来源:互联网 发布:移动网络里没有运营商 编辑:程序博客网 时间:2024/06/13 16:32

assert() //停止程序
register //放入快速缓存器

#include<cstdio>#include<ctime>#include<cassert>#include<iostream>using namespace std;#define N 200int a[N][N][N],b[N][N][N];int main(){    clock_t cl;cl=clock();    for(int i=0;i<N;i++)        for(int j=0;j<N;j++)            for(int k=0;k<N;k++)                a[i][j][k]=i*j*k;    printf("%f\n", double(clock()-cl)/CLOCKS_PER_SEC);    cl=clock();    int *ptr=&b[0][0][0];    for(int i=0;i<N;i++){        int *ptri=ptr+i*N*N;        for(int j=0;j<N;j++){            int *ptrj = ptri+j*N;            for (int k=0;k<N;k++)                ptrj[k]=i*j*k;        }    }    printf("%f\n", double(clock()-cl)/CLOCKS_PER_SEC);    cl = clock();    for(int i=0;i<N;i++)        for (int j=0;j<N;j++)            for (int k=0;k<N;k++)                assert(a[i][j][k]==b[i][j][k]);//不同结束程序     printf("%f\n",double(clock()-cl)/CLOCKS_PER_SEC);    cl = clock();//放入寄存器     for (register int i=0;i<N;i++)        for (register int j=0;j<N;j++)            for (register int k=0;k<N;k++)                assert(a[i][j][k]==b[i][j][k]);    printf("%f\n",double(clock()-cl)/CLOCKS_PER_SEC);    return 0;}
1 0