如何更快地使一个数加一
如何更快地使一个数加一
——————————————————————
几种方式
1 i+=1
2 i++
3 ++i
4 i=-~i (跟某犇学的)
研究过程
为了测试到底哪一种方式更快,我们对每一种方式都进行了十次测试。测试代码如下:
#include<bits/stdc++.h>
using namespace std;
unsigned long long i;
int main()
{
while(i<=1000000000)
{
该方式;
}
return 0;
}
研究结果 我们就有以下数据(数据来源:洛谷在线IDE,笔者亲测)(单位:ms)
| 方式 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 平均数 | 中位数 | 方差 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| i+=1 | 1632 | 1653 | 1610 | 1631 | 1653 | 1652 | 1632 | 1632 | 1652 | 1632 | 1637.9 | 1632 | 181.89 |
| i++ | 1651 | 1612 | 1633 | 1654 | 1634 | 1612 | 1612 | 1632 | 1674 | 1652 | 1636.6 | 1633.5 | 400.24 |
| ++i | 1654 | 1633 | 1693 | 1632 | 1633 | 1632 | 1633 | 1654 | 1656 | 1632 | 1645.2 | 1633 | 352.56 |
| i=-~i | 1631 | 1633 | 1611 | 1654 | 1632 | 1632 | 1632 | 1612 | 1632 | 1632 | 1630.1 | 1632 | 129.09 |
研究结论
最快、最稳的方法:i=-~i
当然,其实4种方法的时间差微乎其微,大家还是选择自己最为顺手的方式最好 (不过这种习惯改起来很快)