मेरे पास कक्षा पॉइंटर्स std::vector<Square*> listSquares
का वेक्टर है। मैं कक्षा के गुणों में से एक के रूप में इसे कुंजी के रूप में सॉर्ट करना चाहता हूं। यह मैंstd :: sort() क्लास पॉइंटर्स के वेक्टर पर
bool compById(Square* a, Square* b)
{
return a->getId() < b->getId();
}
std::sort(listSquares.begin(), listSquares.end(), compById)
क्या कर रहा है, लेकिन संकलक का कहना है: त्रुटि: 'के लिए तरह (std :: वेक्टर :: iterator कॉल के लिए कोई मिलता-जुलता समारोह, std :: वेक्टर :: iterator, < अनसुलझे अतिभारित फ़ंक्शन प्रकार >) '
मैं यहां क्या गलत कर रहा हूं?
आप सी ++ 11 उपयोग कर सकते हैं, तो आप इस एक लैम्ब्डा बनाना चाहिए) {वापसी एक-> getId() < b-> getId;}) '। – leftaroundabout
सुनिश्चित करें कि आप वास्तव में पॉइंटर्स चाहते हैं न केवल ऑब्जेक्ट्स भी। – chris
मैं सी ++ 11 का उपयोग नहीं कर सकता। @ क्रिसिस मुझे यकीन है कि मैं पॉइंटर्स का उपयोग करना चाहता हूं। – qutab