2013-02-09 27 views

उत्तर

84

एम्प्लेस जगह पर किसी ऑब्जेक्ट को बनाने के लिए आवश्यक तर्क लेता है, जबकि किसी ऑब्जेक्ट को सम्मिलित करता है (संदर्भ)।

struct Foo 
{ 
    Foo(int n, double x); 
}; 

std::vector<Foo> v; 
v.emplace(someIterator, 42, 3.1416); 
v.insert(someIterator, Foo(42, 3.1416)); 
21

insert वेक्टर में ऑब्जेक्ट्स कॉपी करता है।

emplaceवेक्टर के अंदर का निर्माण करें।

+5

ध्यान दें कि सी ++ 11 'डालने' में कॉपी करने की आवश्यकता नहीं है, यह भी स्थानांतरित हो सकता है। – juanchopanza

+10

यह उल्लेखनीय है कि डालने के दौरान यदि यह एक रावलू कास्ट का उपयोग किया जाता है, तो हो सकता है। इसलिए, प्रदर्शन स्पष्टता के लिए जब भी संभव हो, इमस्थल का उपयोग करने के लिए स्कॉट मेयर की सिफारिश। – jeremyong

संबंधित मुद्दे