আমি সি ++ তে বেশ নতুন তাই আমি যখন শিখছি তখন অনেকগুলি জাভা-ইসেমস দিয়ে ডিজাইনের প্রবণতা রাখি। যাইহোক, জাভাতে, যদি আমার একটি 'অনুসন্ধান' পদ্ধতিযুক্ত ক্লাস থাকে যা একটি নির্দিষ্ট প্যারামিটারের সাথে মেলে এমন একটি বস্তু Tথেকে ফিরে আসে Collection< T >, আমি সেই বস্তুটি ফিরিয়ে দেব এবং যদি সংগ্রহটিতে বস্তুটি পাওয়া না যায়, তবে আমি ফিরে আসতাম null। তারপরে আমার কলিং ফাংশনে আমি কেবল যাচাই করতামif(tResult != null) { ... }
সি ++ এ, আমি সন্ধান করছি যে nullঅবজেক্টটি উপস্থিত না থাকলে আমি কোনও মান ফিরিয়ে দিতে পারি না। আমি কেবল টি টাইপের একটি 'সূচক' ফিরিয়ে দিতে চাই যা কলিং ফাংশনটি জানিয়ে দেয় যে কোনও বস্তু পাওয়া যায় নি। আমি একটি ব্যতিক্রম ছুঁড়ে দিতে চাই না কারণ এটি সত্যই ব্যতিক্রমী পরিস্থিতি নয়।
এই মুহুর্তে আমার কোডটি দেখতে এমন দেখাচ্ছে:
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।