push_back बनाम emplace_back: क्या अंतर है और क्या चुनें?
नमस्ते, साथियों! मैं एक शुरुआती C++ डेवलपर हूँ और हाल ही में एक दुविधा का सामना किया: push_back कब उपयोग करें और emplace_back कब? \n\nमेरे पास एक सरल class है:\n\n```cpp\nclass MyClass {\npublic:\n MyClass(int x, int y) : x_(x), y_(y) {}\nprivate:\n int x_, y_;\n};\n```\n\nमैं vector में objects को दो तरीकों से जोड़ता हूँ:\n\n```cpp\nstd::vector vec;\n\n// तरीका 1\nvec.push_back(MyClass(10, 20));\n\n// तरीका 2\nvec.emplace_back(10, 20);\n```\n\nदोनों काम करते हैं, लेकिन मैंने सुना है कि emplace_back तेज़ है। यह कितना महत्वपूर्ण है? क्या ऐसे मामले हैं जहाँ push_back बेहतर है? या emplace_back हमेशा बेहतर है?\n\nविशेष रूप से मुझे इसमें दिलचस्पी है: temporary objects, move-semantics और copying के साथ क्या होता है? इंटरनेट पर बहुत विरोधाभासी जानकारी है, मैं अनुभवी डेवलपर्स से स्पष्ट उत्तर प्राप्त करना चाहता हूँ। धन्यवाद!\n<<>>\n
मुख्य अंतर: object कहाँ बनाया जाता है
\n\npush_back और emplace_back के बीच मुख्य अंतर object निर्माण के स्थान में छिपा है।