लेता है कुछ मानक कंटेनर Container<T>
comparer कि आदेश में वांछित विशेषता
struct T{
int x,y;
};
y
मूल्य के आधार पर पर std::sort
की तरह एक मानक समारोह का उपयोग करने के, आप की तरह (उदाहरण के लिए) कुछ लिखने की ज़रूरत:
std::vector<T> v;
//fill v
std::sort(v.begin(),v.end(),[](const auto& l,const auto& r){
return l.y<r.y;
});
लैम्बडा फ़ंक्शन के रूप में लिखे गए तुलनाकर्ता को बहुत अधिक उपयोग किया जाता है और विभिन्न वर्गों और विशेषताओं के लिए कोड के दौरान बार-बार लिखा जाता है।
मामले में जहां y
के प्रकार तुलनीय (या तो की तरह int
या वहाँ < operator
के लिए एक अधिभार है), वहाँ किसी भी तरह से की तरह कुछ प्राप्त करने के लिए है ध्यान में रखते हुए:
std::sort(v.begin(),v.end(),imaginary::less(T::y)); // Imaginary code
यह सी में संभव है ++ करने के लिए less
जैसे ऐसे फ़ंक्शन को लिखें? या कुछ भी समान है?
मैं पूछ रहा हूं क्योंकि मुझे कुछ प्रबंधित भाषा में ऐसा कुछ याद है (मुझे यकीन नहीं है कि शायद सी # या जावा)। हालांकि, अगर यह सच है या नहीं, तो मैं इस जानकारी के बारे में भी निश्चित नहीं हूं।
आप कोड है कि आप कहने के लिए 'member_less()' की अनुमति देता है के साथ खुश होगा? –
@ नाथन: लेकिन यह आपको 'std :: sort'' पर कॉल करने के लिए किस सदस्य को सॉर्ट करने का विकल्प चुनने की अनुमति नहीं देता है। –
@ बेनवोइग आह। मैंने नहीं देखा कि ओपी क्या करने की कोशिश कर रहा था। मुझे मूर्ख। – NathanOliver