for循環優化:數組求和
今天諾西筆試的一道題,代碼段如下: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++編程》中所說,小循環在外,大循環在里,那不用再優化了?
網上也有人說,根據數組在內存中的存放格式,按先行后列會更快?
求高手解答!
@Pear
謝謝評論,單循環對這個題確實可以,但如果20<i<30;10<j<40,就不能用單循環了吧? 回復 更多評論
那就用最牛X的模板元生成循環展開的代碼,運行時速度絕對最快 回復 更多評論
只有注冊用戶登錄后才能發表評論。 | ||
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
![]() |
||
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
|
||
|