ラムダVS関数

リーバイス

ラムダ式の学習を終えたばかりで、を使用してコンソールに出力すると、式と通常の関数のどちらがより高速に実行されるのか疑問に思いましたcout

使用する必要があります

// Lambda expression
auto helloWorld = []()
{
    cout << "Hello World" << endl;
};

または

// Normal function
void helloWorld()
{
    cout << "Hello World" << endl;
}

注:私はまだ初心者のプログラマーなので、エラーが発生した場合は遠慮なく指摘してください。学ぶことしかできない

ありがとう

user1935024

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]

編集
0

コメントを追加

0

関連記事