程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C/C++ For循環語句的效率測試優化及運行時錯誤:Stack Overflow

C/C++ For循環語句的效率測試優化及運行時錯誤:Stack Overflow

編輯:關於C++

在多重循環中,如果有可能,應當將最長的循環放在最內層,最短的循環放在最外層,以減少CPU跨切循環層的次數。

使用以下代碼對嵌套For循環的效率進行測試驗證:

// For嵌套性能.cpp : Defines the entry point for the console application.  
//  返回欄目頁:http://www.bianceng.cn/Programming/cplus/
       
#include "stdafx.h"  
#include <iostream>     
#include <time.h>     
using namespace std;    
       
int main(void)    
{    
    clock_t cstart,cends;    
           
    cstart=clock();  
           
    long sum1 =0;  
    long a1[5][10000000];  
           
    for(long i = 0; i < 5; i++)                  
    {  
        for(long j = 0; j < 10000000; j++)  
        {  
            sum1 += a1[i][j];  
        }  
    }  
           
    cout << "sum1=:" << sum1 << endl;  
           
    cends=clock();    
           
    cout << "Clock時間差:" << cends-cstart << endl;    
       
    /////////////////////////////////////////////////////////////////  
    cstart=clock();  
           
    long sum =0;  
    long a[10000000][5];  
       
    for(i = 0; i < 10000000; i++)                  
    {  
        for(long j = 0; j < 5; j++)  
        {  
            sum += a[i][j];  
        }  
    }  
           
    cout << "sum=:" << sum << endl;  
           
    cends=clock();    
           
    cout << "Clock時間差:" << cends-cstart << endl;    
           
    //////////////////////////////////////////////////////////////  
       
           
    system("pause");    
       
    return 0;    
}

運行結果:

以上代碼在Windows Server 2008 x64 系統上編譯通過,

IDE為:Microsoft Visual c++ sp6

可以編譯通過,但是運行會出現錯誤:

運行時錯誤:Stack Overflow的解決辦法:

返回欄目頁:http://www.bianceng.cn/Programming/cplus/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved