xdm,今天发生了一件离谱的事情,我早晨一起来就看见同事问我:\n和endl哪一个运行速度更快,还说Boss最近裁人,专门出刁钻的题考员工,今天的附加题好像就是这个,我来提醒一下你,别咱俩一起被裁了
诶,我咋没听说过要裁人呢,不过,我的好坤友都这样说了,我总不能不回答吧,不过,似乎他已经去上班了,我竟然才起床啊!!!
(对比明显)
1.\n与endl
方法:看控制台
代码1(endl):
#include<bits/stdc++.h>
using namespace std;
int main(){
cout << "1" << endl;
return 0;
}
代码2(\n):
#include<bits/stdc++.h>
using namespace std;
int main(){
cout << "1\n";
return 0;
}
通过我们练了30年的眼力可以知道这两段代码的运行效果是一样的
那么哪一个更快一些呢?我们可以观察控制台下面的运行秒数
有时候运行速度可能会由于一些电脑的原因产生微小的差异,因此在本文中我们都测试3次
| \n | endl | |
|---|---|---|
| round 1 | 0.2021s | 0.1561s |
| round 2 | 0.02266s | 0.026s |
| round 3 | 0.024s | 0.02706s |
这两个代码的运行效率实际上相差没有多少,只不过我们可以看到\n的速度依然略胜一筹
等我回答完这个问题以后,突然想起来,不对呀,那个人的昵称怎么那么眼熟啊,我急忙打开微信,发现此人不是别人,正是My Boss,好家伙,我直接好家伙,于是截了一张图发到魔力编程工作室群里面,大家也都起床了,每个人都对我发了一个偷笑的表情.只有一个会JS和Vue2的同事问:那在C++里面,++i的速度快还是i++的速度快
2.i++与++i
方法:看控制台
之前在掘金上已经看到了一篇关于i++与++i速度比较的文章,可以知道他们俩的速度是一样的,不过那是在Java上的测试,身为一个只会C++的小白怎么可能会看懂呢?不过嘛,我自有妙计
要问i++和++i在哪里用的最多,我想各位的回答一定是for循环,那么好,我们今天就用循环来解析这位小可爱同事的问题
代码1(i++):
#include<bits/stdc++.h>
using namespace std;
int main(){
for(int i = 1; i <= 10; i++) cout << "鸡";
return 0;
}
代码2(++i):
#include<bits/stdc++.h>
using namespace std;
int main(){
for(int i = 1; i <= 10; ++i) cout << "鸡";
return 0;
}
| i++ | ++i | |
|---|---|---|
| round 1 | 0.2139s | 0.2052s |
| round 2 | 0.3749s | 0.02329s |
| round 3 | 0.1843s | 0.2087s |
两者各有千秋
总而言之,看控制台是一种可靠的方法,也是一种不可靠的方法,不过在此,我先不提供另外几种方法,如果有大佬可以找出另外的方法,可以在本文的评论区下留言
事实上,对于相同效果的代码而言,几毫秒的差异其实算不了什么,,重要的是要学会降低代码时间复杂度的方法,如果你会方法,或许\n和endl会在同一个时间,i++和++i的区别也不会那么明显