अपने लक्ष्य को प्राप्त करने के कई तरीके हैं।
std :: वेक्टर :: सम्मिलित
वेक्टर निर्दिष्ट स्थान पर तत्व से पहले नए तत्व डालने, प्रभावी ढंग से डाला तत्वों की संख्या से कंटेनर के आकार में वृद्धि द्वारा बढ़ाया जा सकता। आप नीचे दिए गए दृष्टिकोणों में से एक का पालन कर सकते हैं। दूसरा संस्करण सी ++ 11 का उपयोग करता है और इसे अधिक सामान्य उत्तर के रूप में माना जा सकता है, क्योंकि बी भी सरणी हो सकता है।
a.insert(a.end(), b.begin(), b.end());
a.insert(std::end(a), std::begin(b), std::end(b));
कभी-कभी उपयोग में यह std :: vector :: insert का उपयोग करने से पहले आरक्षित फ़ंक्शन का उपयोग करने का सबसे अच्छा अभ्यास है। std :: vector :: रिजर्व फ़ंक्शन कंटेनर की क्षमता को उस मान पर बढ़ाता है जो new_cap के बराबर या बराबर है। यदि new_cap वर्तमान क्षमता() से अधिक है, तो नया संग्रहण आवंटित किया जाता है, अन्यथा विधि कुछ भी नहीं करती है।
a.reserve(a.size() + distance(b.begin(), b.end()));
रिजर्व फ़ंक्शन का उपयोग आवश्यक नहीं है लेकिन सलाह दी जा सकती है। और यदि आप बार-बार वेक्टर में डालने के लिए आरक्षित करते हैं तो रिजर्व का उपयोग करना सबसे अच्छा है जिसके लिए आप अंतिम आकार जानते हैं, और वह आकार बड़ा है। अन्यथा, एसटीएल को आवश्यकतानुसार अपने वेक्टर को बढ़ाना बेहतर है।
std :: कॉपी
std :: नकल है कि आप अपने लक्ष्य को प्राप्त करने पर विचार कर सकते दूसरा विकल्प है। यह फ़ंक्शन परिणाम से शुरू होने वाली सीमा में तत्वों (पहले, अंतिम) में तत्वों की प्रतिलिपि बनाता है।
std::copy (b.begin(), b.end(), std::back_inserter(a));
हालांकि std :: प्रतिलिपि का उपयोग,) std :: वेक्टर के उपयोग :: डालने (की तुलना में धीमी है, क्योंकि std :: प्रतिलिपि() के लिए पर्याप्त स्थान आरक्षित नहीं कर सकते से पहले हाथ (यदि ऐसा नहीं होता वेक्टर तक पहुंच है, केवल एक इटरेटर के पास है), जबकि std :: vector :: insert(), सदस्य कार्य होने के नाते, कर सकते हैं। उस std :: प्रतिलिपि के कारण std :: vector :: insert का उपयोग करने से वास्तव में धीमा है। ज्यादातर लोग, इस परिदृश्य को जानने के बिना std :: प्रतिलिपि का उपयोग करते हैं।
बढ़ावा :: push_back
तीसरा विकल्प है कि आप विचार कर सकते हैं को बढ़ावा देने के push_back समारोह का उपयोग है।
boost::push_back(a, b);
संभावित डुप्लिकेट http://stackoverflow.com/questions/201718/concatenating-two-stdvectors) –