मुझे लगता है कि आप उपयोगकर्ता परिभाषित कक्षा को std::vector
में डाल सकते हैं और फिर सॉर्टिंग तंत्र को अधिभारित कर सकते हैं ताकि यह किसी विशेष डेटा सदस्य से तुलना हो। हालांकि, आप std::vector<MyClass>
को कैसे क्रमबद्ध करेंगे जहां MyClass
में दो डेटा सदस्य हैं और आप दूसरे डेटा सदस्य पर सॉर्टिंग का "दूसरा स्तर" जोड़ना चाहते हैं? तो डेटा सदस्य a
पर क्रमबद्ध करें और जहां a
बराबर है, फिर डेटा सदस्य b
पर सॉर्ट करें?सी ++ दो डेटा सदस्यों के आधार पर सॉर्टिंग ऑब्जेक्ट्स
5
A
उत्तर
9
#include <tuple>
//..
struct comp
{
bool operator()(const MyClass& lhs, const MyClass& rhs) const
{
return std::tie(lhs.a, lhs.b) < std::tie(rhs.a, rhs.b);
}
};
उपयोग कर एक कस्टम तुलनित्र बनाएं यह a
पहले और उसके बाद b
दूसरा
संबंधित मुद्दे
- 1. एसक्यूएल नंबर के आधार पर सॉर्टिंग और
- 2. दो सी # ऑब्जेक्ट्स
- 3. सी # संरक्षित सदस्यों आधार वर्ग चर
- 4. निजी डेटा सदस्यों को छुपाएं? (सी ++)
- 5. सी ++: क्लास डेटा सदस्यों का प्रारंभिकरण आदेश
- 6. मैं दो कॉलम के आधार पर दो डेटा-फ्रेम कैसे जोड़ूं?
- 7. क्या सी ++ में पैरामीटर के सदस्यों के आधार पर टेम्पलेट का विशेषज्ञ है?
- 8. डेटा सदस्यों के लिए संकलन-समय पॉलीमोर्फिज्म
- 9. डेटा के आधार पर गुण कैसे
- 10. ड्रॉपडाउन मेनू के आधार पर डेटा लौटाएं?
- 11. पायथन सॉर्टिंग - ऑब्जेक्ट्स की एक सूची
- 12. में स्तरीय स्थिर डेटा सदस्यों
- 13. क्यों कॉन्स्ट डेटा सदस्यों
- 14. सॉर्टिंग आईसीओपरपेबल ऑब्जेक्ट्स जिनमें से कुछ शून्य
- 15. अनिश्चित डेटा के साथ सॉर्टिंग सरणी
- 16. दो pandas.series ऑब्जेक्ट्स जोड़ना
- 17. वोट ऑब्जेक्ट्स के आधार पर रेटिंग ऑब्जेक्ट्स के लिए एल्गोरिदम और 5 स्टार रेटिंग
- 18. दो कॉलम मानों की श्रेणी के आधार पर डेटा फ्रेम में मिलान अंतराल खोजें
- 19. प्रत्येक dataframe में दो exchangable कॉलम मिलान के आधार पर
- 20. दो अन्य स्तंभों के आधार पर नया कॉलम बनाएं, लेकिन
- 21. बबल सॉर्टिंग और सी
- 22. पूर्णांक सूचकांक के आधार पर विभाजित डेटा फ्रेम
- 23. दो एक्सटीएस ऑब्जेक्ट्स प्लॉटिंग
- 24. WCF डेटा सेवाओं: __metadata सदस्यों
- 25. सी # ऑब्जेक्ट्स
- 26. दो ऑब्जेक्ट्स की तुलना
- 27. क्या मुझे स्थिर डेटा सदस्यों का उपयोग करना चाहिए? (सी ++)
- 28. पदावनत struct सदस्यों सी ++
- 29. दो ActiveRecord :: संबंध ऑब्जेक्ट्स
- 30. दो पी में गंभीरता के आधार पर संदेश दिखाएं: growl
छँटाई तंत्र ओवरलोडिंग आप दो वस्तुओं पर मनमाने ढंग से कोड को निष्पादित करने की अनुमति देता है तुलना की जा रही का उपयोग करेगा। आप जितना चाहें उतने "स्तर" को जोड़ने में सक्षम होना चाहिए। –
जैसा कि आप इसे एक सदस्य की तुलना के लिए करेंगे। मैं सुझाव देता हूं कि पहले ऐसा कैसे करें (एसओ पर इसके बारे में कई प्रश्न हैं), फिर बस उस मज़ेदार को संशोधित करें जिसे आपने दूसरे सदस्य की तुलना में लिखने के लिए लिखा था यदि पहला बराबर है। – us2012