C ++ 11 emplace_back()
में आम तौर पर पसंद किया जाता है (दक्षता के संदर्भ में) push_back()
क्योंकि यह इन-प्लेस निर्माण की अनुमति देता है, लेकिन क्या यह अभी भी मामला है जब push_back(std::move())
पहले से निर्मित वस्तु के साथ उपयोग किया जाता है?
उदाहरण के लिए, emplace_back()
अभी भी निम्नलिखित मामलों में पसंद किया जाता है?
std::string mystring("hello world");
std::vector<std::string> myvector;
myvector.emplace_back(mystring);
myvector.push_back(std::move(mystring));
// (of course assuming we don't care about using the value of mystring after)
इसके अतिरिक्त, क्या इसके बजाय उपरोक्त उदाहरण में कोई लाभ है:
myvector.emplace_back(std::move(mystring));
या यहाँ कदम पूरी तरह से बेमानी है, या कोई प्रभाव नहीं है?
myvector.emplace_back(mystring);
प्रतियां और कदम नहीं है। अन्य दो चालें और समतुल्य होनी चाहिए।