Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C/C++ में लैम्ब्डा फंक्शन का महत्व

लैम्ब्डा फ़ंक्शन - लैम्ब्डा फंक्शन एक इनलाइन फंक्शन है जिसे मुख्य कार्यक्रम के दायरे से बाहर किसी भी कार्यान्वयन की आवश्यकता नहीं होती है।

लैम्ब्डा फंक्शन्स को वेरिएबल द्वारा स्टोर करने के लिए वैल्यू के रूप में भी इस्तेमाल किया जा सकता है। लैम्ब्डा को एक वस्तु के रूप में संदर्भित किया जा सकता है जिसे फ़ंक्शन द्वारा बुलाया जा सकता है (जिसे फ़ंक्टर्स कहा जाता है) )।

जब भी कंपाइलर लैम्ब्डा फ़ंक्शन की परिभाषा का सामना करता है, तो यह आम तौर पर लैम्ब्डा के लिए एक कस्टम ऑब्जेक्ट बनाता है।

लैम्ब्डा फ़ंक्शन में सामान्य फ़ंक्शन की तुलना में अधिक कार्यक्षमता होती है, उदाहरण के लिए, इसमें उपयोग किए गए चर को कैप्चर करने के लिए एक कैप्चरिंग विधि होती है। हालांकि, कैप्चर किए गए वेरिएबल को ऑब्जेक्ट के सदस्य के रूप में माना जाता है।

कभी-कभी लैम्ब्डा फ़ंक्शन को "फ़ंक्शन ऑब्जेक्ट" के रूप में भी जाना जाता है, जिसका अपना दायरा होता है और इसे सामान्य फ़ंक्शन के अंदर पैरामीटर के रूप में पारित किया जा सकता है। लैम्ब्डा फ़ंक्शन का अपना जीवनकाल होता है।

[ ] - कैप्चर करें

( ) - पैरामीटर्स (वैकल्पिक)

- वापसी मूल्य (वैकल्पिक)

{...} - फंक्शन बॉडी।

लैम्ब्डा का सिंटैक्स

[ ]( int a) -> int { return a-1 ;};

कैप्चर करें - एक कैप्चर एक क्लॉज है जिसके माध्यम से लैम्ब्डा फ़ंक्शन ने उस विशेष स्कोप या नेस्टेड ब्लॉक में उपलब्ध वेरिएबल्स तक पहुंच प्रदान की है।

हम दो विधियों का उपयोग करके उपलब्ध चर के मूल्य को प्राप्त कर सकते हैं,

  • ऑब्जेक्ट को नाम से कैप्चर करना - ऑब्जेक्ट को नाम से कैप्चर करने से लैम्ब्डा फंक्शन की स्थानीय कॉपी बन जाती है।

हम इस अवधारणा को निम्नलिखित उदाहरण से समझ सकते हैं -

int main(){
   set s;
   //Adding the elements to set
   int i=20;
   for_each(s.begin(),s.end(), [i](T& elem){
      cout<<elem.getVal()*i<<endl;
   }
}

उपरोक्त उदाहरण में, लैम्ब्डा फ़ंक्शन की स्थानीय प्रतिलिपि बनाकर मान को कैप्चर किया जाता है।

  • संदर्भ द्वारा ऑब्जेक्ट कैप्चर करना - किसी ऑब्जेक्ट को संदर्भ द्वारा कैप्चर करना लैम्ब्डा फ़ंक्शन के संदर्भ में हेरफेर करता है। इस प्रकार फ़ंक्शन ऑब्जेक्ट या लैम्ब्डा फ़ंक्शन द्वारा कैप्चर किए गए मान को बदला जा सकता है।

इसे हम निम्न उदाहरण से समझ सकते हैं -

int main(){
   sets;
   //Adding elements to the set
   int result=0;
   for_each(s.begin(),s.end(), [&result](&T elem){ result+= elem.getVal();});
   cout<<result<<endl;
}

लैम्ब्डा इनसाइड मेंबर फंक्शन

हम जानते हैं कि लैम्ब्डा फ़ंक्शन को किसी भी सामान्य फ़ंक्शन के अंदर एक पैरामीटर के रूप में उपयोग किया जा सकता है। उदाहरण के लिए,

class func{
public:
   func(set<T>s): s1(s){}
   void func(){
      remove_if(s1.begin(),s1.end(), [this](int i) ->bool {return (i<level);});
   }
private:
   set<T>s1;
   int result;
};

  1. putwchar () सी/सी ++ में समारोह

    इस लेख में हम C++ STL में putwchar() फंक्शन की कार्यप्रणाली, सिंटैक्स और उदाहरणों पर चर्चा करेंगे। पुटवचर () क्या है? putwchar() फ़ंक्शन C++ STL में एक इनबिल्ट फ़ंक्शन है, जिसे हेडर फ़ाइल में परिभाषित किया गया है। putwchar () फ़ंक्शन का उपयोग मानक आउटपुट डिवाइस पर विस्तृत वर्ण लिखने के लिए किया जा

  1. mbsrtowcs() सी/सी++ में कार्य करता है

    इस लेख में हम C++ STL में काम करने, वाक्य रचना और std::mbsrtowcs() फ़ंक्शन के उदाहरणों पर चर्चा करेंगे। std::mbsrtowcs() क्या है? std::mbsrtowcs() फ़ंक्शन C++ STL में एक इनबिल्ट फ़ंक्शन है, जिसे हेडर फ़ाइल में परिभाषित किया गया है। mbsrtowcs() का अर्थ है कि यह नल टर्मिनेटेड मल्टीबाइट कैरेक्टर स्ट्

  1. सिस्टम () सी/सी++ में फंक्शन

    कार्य को देखते हुए सिस्टम () को C/C++ में दिखाना है। सिस्टम () फ़ंक्शन C/C++ मानक पुस्तकालय का एक हिस्सा है। इसका उपयोग उन कमांड को पास करने के लिए किया जाता है जिन्हें कमांड प्रोसेसर या ऑपरेटिंग सिस्टम के टर्मिनल में निष्पादित किया जा सकता है, और अंत में पूरा होने के बाद कमांड को वापस कर देता है।