मैं C ++ के लिए बहुत नया हूं, इसलिए जब मैं सीख रहा हूं तो मैं बहुत सारे जावा-आईएमएस के साथ डिजाइन करता हूं। वैसे भी, जावा में, यदि मेरे पास एक 'खोज' पद्धति है, जो उस ऑब्जेक्ट T
से Collection< T >
एक विशिष्ट पैरामीटर से मेल खाते हुए लौटेगी, तो मैं उस वस्तु को वापस कर दूंगा और यदि वस्तु संग्रह में नहीं मिली, तो मैं वापस लौटूंगा null
। फिर मेरे कॉलिंग फंक्शन में मैं सिर्फ जाँच करूँगाif(tResult != null) { ... }
C ++ में, मुझे पता चल रहा है कि null
यदि वस्तु मौजूद नहीं है तो मैं एक मान नहीं लौटा सकता । मैं केवल टाइप T के 'इंडिकेटर' को वापस करना चाहता हूं जो कॉलिंग फ़ंक्शन को सूचित करता है कि कोई ऑब्जेक्ट नहीं मिला है। मैं एक अपवाद नहीं फेंकना चाहता क्योंकि यह वास्तव में एक असाधारण परिस्थिति नहीं है।
यह मेरा कोड अभी जैसा दिखता है:
class Node {
Attr& getAttribute(const string& attribute_name) const {
//search collection
//if found at i
return attributes[i];
//if not found
return NULL; // what should this be?
}
private:
vector<Attr> attributes;
}
मैं इसे कैसे बदल सकता हूं ताकि मैं उस तरह का मार्कर दे सकूं?
std::find(first, last, value)
रिटर्नlast
।