【发布时间】:2023-03-09 09:41:01
【问题描述】:
这个问题我刚刚想到,我真的不知道如何解决。
让我告诉你我的意思:
int x = 1;
auto lambda1 = [x](){
// do something with x, not specified here though
}
auto lambda2 = [](int x){
// do something with x, not specified here though
}
lambda1();
lambda2(x);
假设我们在给定时间只有 lambda1 或 lambda2。
在这种情况下哪个函数会更快?我很确定差异很小,即使有任何差异,但这只是引起了我的兴趣,我真的很想知道!
问我们是否只使用一个 int 可能是非常愚蠢的,但在更大比例的 lambda 中可能存在可测量的差异。
【问题讨论】:
-
我不认为这与哪个版本更快有关。她们不一样。你不能用第一个做你可以用另一个做的。
-
您无法真正比较两者,它们做不同的事情。出于性能原因,请勿使用其中一种,请根据您的需要进行选择。