1.for循环的条件里面,尽量不要写函数
#include<bits/stdc++.h>
using namespace std;
int arr[100000000];
int main()
{
clock_t start_1=clock();
for(int i=0;i<100000000;++i)
arr[i]=i+1;
clock_t finish_1=clock();
cout << "start :\t\t" << (double)start_1/CLOCKS_PER_SEC << 's' << endl;
cout << "finish:\t\t" << (double)finish_1/CLOCKS_PER_SEC << 's' << endl;
clock_t start_2=clock();
for(int i=0;i<sizeof(arr)/sizeof(int);++i)
arr[i]=i+1;
clock_t finish_2=clock();
cout << "start :\t\t" << (double)start_2/CLOCKS_PER_SEC << 's' << endl;
cout << "finish:\t\t" << (double)finish_2/CLOCKS_PER_SEC << 's' << endl;
return 0;
}
分别注释第一个代码块和第二个代码块,运行结果如下图:
没有使用函数
虽然多次运行的时间会有偏差,一般偏差的数值不超过0.003s,这个跟系统调度有关系
使用函数
这个的时间,比上面的那个没有使用函数的时间多了0.4s,由此,可以得出的结论是:在for循环里面使用函数,每一次使用的时候,因为没有将计算的值存储起来,这样会造成重复计算的进而浪费时间!