यह निर्धारित करने का सबसे अच्छा तरीका क्या है कि एसटीएल के नक्शे में किसी दिए गए कुंजी का मूल्य है?
#include <map>
using namespace std;
struct Bar
{
int i;
};
int main()
{
map<int, Bar> m;
Bar b = {0};
Bar b1 = {1};
m[0] = b;
m[1] = b1;
//Bar b2 = m[2];
map<int, Bar>::iterator iter = m.find(2);
Bar b3 = iter->second;
}
डीबगर में इसकी जांच करने पर ऐसा लगता है कि iter
यह केवल कचरा डेटा है।
अगर मैं इस लाइन को अनकम्प्लीट करता हूँ:
Bar b2 = m[2]
डीबगर दिखाता है कि b2
है {i = 0}
। (मैं यह अनुमान लगा रहा हूं कि अपरिभाषित सूचकांक का उपयोग करने से सभी खाली / असिंचित मूल्यों के साथ एक संरचना वापस आ जाएगी)?
इनमें से कोई भी तरीका इतना बढ़िया नहीं है। मैं वास्तव में क्या पसंद करूँगा इस तरह का एक इंटरफ़ेस है:
bool getValue(int key, Bar& out)
{
if (map contains value for key)
{
out = map[key];
return true;
}
return false;
}
क्या इन रेखाओं के साथ कुछ मौजूद है?