मान लीजिए मैं निम्नलिखित कोड है:ले जाएँ :: push_back
#include <vector>
struct A {
int a;
int x;
};
int main() {
using namespace std;
A a1;
A a2;
vector<A> va;
va.push_back(a1);
va.push_back(move(a2));
}
मुझे पता है कि std :: वेक्टर के तत्वों समीप जमा हो जाती है एक std :: सूची के विपरीत, कर रहा हूँ। उपरोक्त कोड में a2
स्थानांतरित हो गया है लेकिन क्या वास्तव में वेक्टर va
पर a2
की कोई प्रतिलिपि नहीं है? va.push_back(a2);
और के बीच क्या अंतर है?
आपके मामले में, 'std :: move'ing' a2' बिल्कुल * कुछ नहीं * है, क्योंकि यह एक समतल प्रकार है (यानी, इसका कोई बाहरी डेटा नहीं है) और अभी भी प्रतिलिपि बनायेगा। – Xeo
@cdhowie धन्यवाद। ठीक कर दिया। – ggg
आप पढ़ना चाह सकते हैं [क्या कोई मुझे अर्थात् स्थानांतरित करने के लिए परिचय के लिए व्याख्यान व्याख्या कर सकता है?] (Http://stackoverflow.com/questions/3106110/)। – fredoverflow