के डेटा के संदर्भ में वेक्टर में सम्मिलित करना मैं वर्तमान में ऐसी परिस्थिति में हूं जहां मैं वेक्टर में कुछ तत्वों को डुप्लिकेट करना चाहता हूं। इस मामले मेंउसी वेक्टर
std::vector<MyStruct> v;
// ...
auto toDuplicate = std::find(v.begin(), v.end(), [](const MyStruct &s) { return true; /*In reality, a bit more complex*/ });
v.insert(toDuplicate, nrOfDuplicates-1, *toDuplicate);
// Signature: insert(iterator, size_t, const value_type &)
तो, अगर क्षमता अंतिम क्षमता की तुलना में छोटा होता है, std :: वेक्टर मेरे संदर्भ बनाने अपनी आंतरिक डेटा के realloc हैं: संक्षेप में, मेरी कोड निम्नलिखित के समान है सम्मिलित डेटा अमान्य।
वर्तमान में उपयोग किए जा रहे एसटीएल का कार्यान्वयन (एमएसवीसी2013) में इस प्रकार के आवेषणों के खिलाफ सुरक्षा शामिल है क्योंकि यह फिर से शुरू करने की आवश्यकता होने पर मेरे तत्व की प्रतिलिपि करेगा। हालांकि, मुझे यकीन नहीं है कि क्या मैं इस व्यवहार पर भरोसा कर सकता हूं या क्या मुझे पहले खुद को प्रतिलिपि बनाने की आवश्यकता है? (मैं नए एसटीएल कार्यान्वयन के उन्नयन के दौरान खुद को इस तरह की बग को देखने से रोकता हूं)
तो संक्षेप में: क्या मुझे एक तत्व के संदर्भ में वेक्टर पर सम्मिलित करने की अनुमति है वेक्टर?
मैं बेवकूफ हूं। माफ़ कीजिये। – Slava