如何更快地使一个数加一

· · 个人记录

如何更快地使一个数加一

——————————————————————

几种方式

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种方法的时间差微乎其微,大家还是选择自己最为顺手的方式最好 (不过这种习惯改起来很快)