मैं) जोड़ीC++ कस्टम तुलना std :: तरह()
यहाँ एसटीडी के लिए कस्टम तुलना समारोह बनाने के लिए :: तरह (कुछ कुंजी-मान जोड़ों एसटीडी सॉर्ट करने के लिए :: चाहते हैं के लिए समारोह मेरी समारोह
हैvector<pair<K,V>> items;
और तरह के लिए कुछ विधि कुंजी द्वारा इस सदिश, std :: तरह()
का उपयोग कर:template <typename K, typename V>
int comparePairs(const void* left, const void* right){
if((((pair<K,V>*)left)->first) <= (((pair<K,V>*)right)->first))
return 1;
else
return -1;
}
फिर, कुछ वर्ग के अंदर मैं जोड़े वर्ग के सदस्य के वेक्टर है
std::sort(items.begin(), items.end(), comparePairs<K,V>);
मैं भीतर संकलन त्रुटियाँ हैं, जिसमें कहा गया
" 'std :: जोड़ी < _Ty1, _Ty2>' के लिए 'स्थिरांक शून्य *' से पैरामीटर संख्या परिवर्तित नहीं कर सकते" । गलती क्या है?
तुम क्यों कर रहे हैं अपने पैरामीटर को 'शून्य * 'के रूप में लेना? 'std :: pair की तरह क्यों नहीं? –
गलती यह है कि आप तुलनित्र को 'qsort' के लिए' std :: sort' पर भ्रमित कर रहे हैं, जिसके लिए 'कॉन्स्ट शून्य *' तर्क की आवश्यकता होती है। 'Std :: sort' के लिए एक उचित तुलनित्र लिखें जो' जोड़ी 'संदर्भों को स्वीकार करता है और समस्या दूर हो जाएगी। –
user4815162342
जब कोई अनुसंधान, पढ़ने, ध्यान देने, सोचने, या कुछ और करने की पूरी कमी दिखाता है, तो कोई इसे क्यों उखाड़ फेंक देगा? –