के तत्वों के लिए पॉइंटर्स मेरे पास std::vector
कुछ वर्ग ClassA
के तत्वों के साथ std::vector
है। इसके अतिरिक्त मैं std::map<key,ClassA*>
का उपयोग करके एक इंडेक्स बनाना चाहता हूं जो वेक्टर में निहित तत्वों के पॉइंटर्स को कुछ महत्वपूर्ण मानों को मानचित्रित करता है।std :: vector और std :: list
कोई गारंटी नहीं है कि इन संकेत (एक ही वस्तु के लिए और बिंदु) वैध रहेगा है जब तत्व हैं वेक्टर ( नहीं डाला ) के अंत में गयी। यानी, निम्नलिखित कोड सही होगा:
std::vector<ClassA> storage;
std::map<int, ClassA*> map;
for (int i=0; i<10000; ++i) {
storage.push_back(ClassA());
map.insert(std::make_pair(storage.back().getKey(), &(storage.back()));
}
// map contains only valid pointers to the 'correct' elements of storage
कैसे है स्थिति, अगर मैं std::list
बजाय std::vector
का उपयोग करें?
वेक्टर का उद्देश्य क्या है? क्या आपको उस क्रम को याद रखने की ज़रूरत है जिसमें उन्हें बनाया गया है? आप मानचित्र और इसके बजाय vecor का उपयोग कर सकते हैं। मानचित्र के तत्वों के लिए Iterators/पॉइंटर्स/संदर्भ मान्य रहते हैं। अपने पसंदीदा मानक पुस्तकालय संदर्भ की गारंटी देखें। –
sellibitze