में वेक्टर
char *
) की सामग्री को जोड़ने का सही (और कुशल) तरीका क्या है?
std::vector<char> vec;
const char* values="values";
const char* end = values + strlen(values);
vec.insert(vec.end(), values, end);
वेक्टर करने के लिए इसे दूसरों को सौंपना back_inserter
का उपयोग करने को प्राथमिकता दी जानी चाहिए क्योंकि वेक्टर तो अपने अंतिम पर फैसला कर सकते हैं:
जबकि पहला सही है, दूसरा यह बेहतर है, क्योंकि वेक्टर यह समझ सकता है कि इटरेटर यादृच्छिक-पहुंच वाले इटरेटर्स हैं और उन्हें पहले से आरक्षित करने के लिए उपयोग करते हैं, संभावित पुन: आवंटन को बचाते हैं। – sbi
सच है। हालांकि, इससे ज्यादा उम्मीद नहीं होगी। वैसे भी, रोम के लिए एक से अधिक सड़कें हैं ;-) –
मैं वास्तव में दूसरे को बेहतर होने की उम्मीद करता हूं, क्योंकि कई आधुनिक कार्यान्वयन अब सरल मामलों को अनुकूलित करते हैं। यह तीन तरीकों से सरल है: 'वेक्टर <>' एक साधारण टेम्पलेट है, 'char * 'एक साधारण इटरेटर है, और' char' एक साधारण पीओडी है। – MSalters