मेरे प्राथमिकता कतार घोषित रूप के साथ एक C++ priority_queue के लिए विधि छँटाई लागू करना सीखें:संकेत
std::priority_queue<*MyClass> queue;
class MyClass {
bool operator<(const MyClass* m) const;
}
कतार में आइटम छँटाई नहीं है।
क्या गलत है? मैं एक अलग (तुलना) कक्षा को लागू नहीं करना चाहता हूं।
उत्तर सारांश:, सूचक पतों हल कर रहे हैं
समस्या है। इससे बचने का एकमात्र तरीका एक वर्ग है जो 'पॉइंटर्स की तुलना करता है'।
अब लागू किया:
std::priority_queue<*MyClass, vector<*MyClass>, MyClass::CompStr > queue;
class MyClass {
struct CompStr {
bool operator()(MyClass* m1, MyClass* m2);
}
}
मैं वास्तव में पालन नहीं कर सकता। मैं आपको चिंता के अतिरिक्त अलगाव के साथ जवाब देता हूं और मुझे 2 वोट मिलते हैं। माइक्लास को पॉइंटर से तुलना करने की आवश्यकता क्यों है? ओपन-क्लोज़ सिद्धांत के बारे में क्या, आप यह तय करने के लिए क्या कर रहे हैं जब आपको पॉइंटर्स के बजाय मूल्य प्रकारों की std :: priority_que_que की आवश्यकता होती है। – TimW