Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++11 में लैम्ब्डा एक्सप्रेशन क्या है?


C++ STL में std::for_each जैसे उपयोगी जेनेरिक फ़ंक्शन्स शामिल हैं। दुर्भाग्य से, उनका उपयोग करना काफी बोझिल हो सकता है, विशेष रूप से यदि आप जिस फंक्टर को लागू करना चाहते हैं वह विशेष फ़ंक्शन के लिए अद्वितीय है। तो यह फ़ंक्शन जो आप बनाएंगे वह उस नेमस्पेस में केवल उस एक स्थान पर उपयोग होने के लिए होगा। इसका समाधान अनाम फ़ंक्शन्स का उपयोग करना है।

C++ ने C++11 में अनाम फ़ंक्शन बनाने की अनुमति देने के लिए लैम्ब्डा एक्सप्रेशन पेश किए।

उदाहरण

#include<iostream> #include<vector> #include <algorithm> // for_each using namespace std; int main() {    vector<int> myvector;    myvector.push_back(1);    myvector.push_back(2);    myvector.push_back(3);    for_each(myvector.begin(), myvector.end(), [](int x) {       cout << x*x << endl;    }); }

आउटपुट

यह आउटपुट देगा:

1 4 9

(int x) का उपयोग उन आर्गुमेंट्स को परिभाषित करने के लिए किया जाता है जिनके साथ लैम्ब्डा एक्सप्रेशन को कॉल किया जाएगा। [] का उपयोग लोकल स्कोप से लैम्ब्डा के आंतरिक स्कोप में वेरिएबल्स पास करने के लिए किया जाता है, इसे वेरिएबल्स कैप्चर करना कहा जाता है। यदि ये एक्सप्रेशन्स सरल हैं, तो वे अपने टाइप्स को ऑटो डिड्यूस कर सकते हैं। आप निम्न सिंटैक्स का उपयोग करके टाइप जानकारी भी स्पष्ट रूप से प्रदान कर सकते हैं:

सिंटैक्स

[](int x) -> double {    return x/2.0; }

C++ लैम्ब्डा को विस्तार से जानने के लिए इस StackOverflow थ्रेड पर जाएं: https://stackoverflow.com/questions/7627098/what-is-a-lambda-expression-in-c11




  1. - C# में ओवरलोडिंग क्या है

    C# स्टैटिक पॉलीमॉर्फिज्म इम्प्लीमेंट करने के लिए दो तकनीकें प्रदान करता है - फंक्शन ओवरलोडिंग ऑपरेटर ओवरलोडिंग फंक्शन ओवरलोडिंग एक ही नाम वाले लेकिन अलग-अलग पैरामीटर्स वाले दो या दो से अधिक मेथड्स को C# में फंक्शन ओवरलोडिंग कहा जाता है। C# में फंक्शन ओवरलोडिंग आर्गुमेंट्स की संख्या और आर्गुमेंट्स

  1. - C# में एन्यूमरेशन क्या है

    Enum, एन्यूमरेशन है जो नामित कॉन्स्टेंट्स का एक सेट स्टोर करता है जैसे वर्ष, उत्पाद, महीना, मौसम, आदि। Enum कॉन्स्टेंट्स का डिफ़ॉल्ट मान 0 से शुरू होता है और बढ़ता जाता है। इसमें कॉन्स्टेंट्स का एक फिक्स्ड सेट होता है और इसे आसानी से ट्रैवर्स किया जा सकता है। आइए एक उदाहरण देखें। हमने enum को इस तरह

  1. - पायथन में लैम्ब्डा बाइंडिंग क्या है?

    लैम्ब्डा बाइंडिंग पायथन में डिफ़ॉल्ट पैरामीटर मानों के मूल्यांकन से संबंधित एक महत्वपूर्ण अवधारणा है। जब एक लैम्ब्डा फंक्शन डिफ़ॉल्ट आर्गुमेंट का उपयोग करता है, तो डिफ़ॉल्ट मान फंक्शन परिभाषा के समय मूल्यांकित होता है, न कि कॉल के समय। उदाहरण: लैम्ब्डा बाइंडिंग व्यवहार def function(x): a = lamb