यह कैसे मैं एक कस्टम तुलनित्रमैं कंटेनर तुलना ऑपरेटर के लिए लैम्ब्डा का उपयोग कैसे कर सकता हूं?
priority_queue< int, vector<int>, greater<int> > third (myints,myints+4);
// using mycomparison:
priority_queue< int, vector<int>, mycomparison > q1;
class mycomparison
{
public:
bool operator() (const int& lhs, const int&rhs) const
{
return (lhs<rhs);
}
};
typedef priority_queue<int,vector<int>,mycomparison> q2;
के रूप में इनबिल्ट समारोह या नया वर्ग का प्रयोग करेंगे है लेकिन मुझे आश्चर्य है कि अगर मैं वहाँ लैम्ब्डा कार्यों का उपयोग कर सकते हैं ..
लैम्बडास मकसद हैं, जबकि कंटेनरों को एक मजेदार * प्रकार * की आवश्यकता होती है। आप 'decltype' के साथ कुछ करने में सक्षम हो सकते हैं (लेकिन मैं इसे MSVC2010 में काम करने की उम्मीद नहीं करता)। – Cameron
हां, आप लैम्ब्डा का उपयोग कर सकते हैं, लेकिन लैम्ब्डा को इसके उपयोग की सबसे वैश्विक घोषणा के रूप में वैश्विक रूप में होना चाहिए जो इस उद्देश्य को हरा देता है और आम तौर पर गन्दा होता है। – GManNickG