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

सी ++ में लैम्ब्डा अभिव्यक्ति

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;
}

  1. C++ . में रेखा परावर्तन

    मान लीजिए कि हमारे पास 2D तल पर n बिंदु हैं, हमें यह जांचना है कि क्या y-अक्ष के समानांतर कोई रेखा है जो दिए गए बिंदुओं को सममित रूप से दर्शाती है, दूसरे शब्दों में, जांचें कि क्या कोई ऐसी रेखा मौजूद है जो दी गई रेखा पर सभी बिंदुओं को प्रतिबिंबित करने के बाद मूल बिंदुओं का सेट वही होता है जो प्रतिबि

  1. C++ . में विकर्ण ट्रैवर्स II

    मान लीजिए कि हमारे पास nums नामक सूचियों की एक सूची है, हमें अंकों के सभी तत्वों को विकर्ण क्रम में दिखाना होगा। तो, अगर इनपुट पसंद है तो आउटपुट [1,6,2,8,7,3,9,4,12,10,5,13,11,14,15,16] होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - एक सरणी रिट परिभाषित करें एक 2डी सरणी को परिभाषित

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

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