對于簡單的控制臺程序,可使用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++編程》中所說,小循環在外,大循環在里,那不用再優化了?
網上也有人說,根據數組在內存中的存放格式,按先行后列會更快?
求高手解答!