स्ट्रक्चर्स जैसे जटिल डेटा संरचनाओं के साथ काम करते समय, उन तत्वों के वेक्टर के माध्यम से खोजना चुनौतीपूर्ण हो सकता है . इस संदर्भ में, std::find फ़ंक्शन एक वेक्टर के भीतर विशिष्ट तत्वों की पहचान करने के लिए एक समाधान प्रदान करता है।
इस तरह एक संरचना परिभाषा पर विचार करें:
struct monster
{
DWORD id;
int x;
int y;
int distance;
int HP;
};
अब, मान लें कि हमारे पास राक्षसों का एक वेक्टर है:
std::vector monsters;
के आधार पर एक तत्व की खोज करना संरचना के भीतर एक विशिष्ट क्षेत्र, जैसे राक्षस की आईडी, हमें std::find के बजाय std::find_if का उपयोग करने की आवश्यकता है। std::find_if एक विधेय फ़ंक्शन को एक तर्क के रूप में लेता है, जो हमें खोज मानदंड को परिभाषित करने की अनुमति देता है।
यहां बूस्ट लाइब्रेरी का उपयोग करके एक उदाहरण दिया गया है:
it = std::find_if(bot.monsters.begin(), bot.monsters.end(),
boost::bind(&monster::id, _1) == currentMonster);
या, यदि बूस्ट उपलब्ध नहीं है, तो आप इस तरह अपना स्वयं का find_id फ़ंक्शन ऑब्जेक्ट बना सकते हैं:
struct find_id : std::unary_function {
DWORD id;
find_id(DWORD id) : id(id) {}
bool operator()(monster const& m) const {
return m.id == id;
}
};
it = std::find_if(bot.monsters.begin(), bot.monsters.end(),
find_id(currentMonster));
std::find_if और उपयुक्त विधेय फ़ंक्शन का उपयोग करके, आप उनके सदस्य चर के आधार पर विशिष्ट तत्वों को ढूंढने के लिए structs के वेक्टर के माध्यम से कुशलतापूर्वक खोज सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3