ラムダ式の学習を終えたばかりで、を使用してコンソールに出力すると、式と通常の関数のどちらがより高速に実行されるのか疑問に思いましたcout
。
使用する必要があります
// Lambda expression
auto helloWorld = []()
{
cout << "Hello World" << endl;
};
または
// Normal function
void helloWorld()
{
cout << "Hello World" << endl;
}
注:私はまだ初心者のプログラマーなので、エラーが発生した場合は遠慮なく指摘してください。学ぶことしかできない
ありがとう
のstl
ような関数を使用する場合、または名前を付けずに関数をすばやく破棄したい場合、ラムダはエレガントだと思います。
sort(v.begin(),
v.end(),
[](int a, int b){ return a > b; }
);
しかし、それは関数からは速くありません。
両方の分解。
helloWorld1();
008112A0 mov ecx,dword ptr ds:[813054h]
008112A6 push 8119A0h
008112AB call std::operator<<<std::char_traits<char> > (0811780h)
008112B0 mov ecx,eax
008112B2 call dword ptr ds:[813038h]
helloWorld2();
008112B8 mov ecx,dword ptr ds:[813054h]
008112BE push 8119A0h
008112C3 call std::operator<<<std::char_traits<char> > (0811780h)
008112C8 mov ecx,eax
008112CA call dword ptr ds:[813038h]
どちらも同じ分解です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加