对于简单的控制台程序,可使用clock(),表示程序开始执行到现在经过的时间,在要计算时间的代码前后添加如下代码即可(需要包含头文件<time.h>):
clock_t start, finish;
double totaltime;
start=clock();
//code
finish=clock();
totaltime=(double)(finish-start)/CLOCKS_PER_SEC; //得到结果单位秒,如果时间太短太短的话可能是0
std::cout<<totaltime<<"\n";
也可以调用win32API函数GetTickCount(),
DWORD dwStart = GetTickCount();
//代码.........
DWORD dwStop = GetTickCount();
DWORD dwInterval = dwStop - dwStart;
今天诺西笔试的一道题,代码段如下:
int a[1000][100];
long sum = 0;
for(int i = 0; i < 100; i ++)
for(int j = 0; j < 1000; j ++)
sum += a[j][i];
按照林锐的《高质量c++编程》中所说,小循环在外,大循环在里,那不用再优化了?
网上也有人说,根据数组在内存中的存放格式,按先行后列会更快?
求高手解答!