में एक संरचना को एक वेक्टर में संरचना को पुश_बैक कैसे कर सकता हूं?push_back() एक वेक्टर
struct point {
int x;
int y;
};
vector <point> a;
a.push_back(???);
में एक संरचना को एक वेक्टर में संरचना को पुश_बैक कैसे कर सकता हूं?push_back() एक वेक्टर
struct point {
int x;
int y;
};
vector <point> a;
a.push_back(???);
point mypoint = {0, 1};
a.push_back(mypoint);
या आप की अनुमति दी रहे हैं, point
एक निर्माता देते हैं, ताकि आप उपयोग कर सकते हैं एक अस्थायी:
a.push_back(point(0,1));
कुछ लोगों को अगर आप एक वर्ग घोषित में एक निर्माता डाल आपत्ति होगा struct
के साथ, और यह इसे गैर-पीओडी बनाता है, और शायद आप point
की परिभाषा के नियंत्रण में नहीं हैं। तो यह विकल्प आपके लिए उपलब्ध नहीं हो सकता है। हालांकि, आप एक ऐसा कार्य लिख सकते हैं जो समान सुविधा प्रदान करता है:
point make_point(int x, int y) {
point mypoint = {x, y};
return mypoint;
}
a.push_back(make_point(0, 1));
point p;
p.x = 1;
p.y = 2;
a.push_back(p);
ध्यान दें कि, a
के बाद से अंक की एक वेक्टर (नहीं उन्हें संकेत), push_back अपनी बात struct की एक प्रतिलिपि बनाने जाएगा - तो p
सुरक्षित रूप से एक बार इसे से बाहर चला जाता है नष्ट किया जा सकता गुंजाइश।
point foo; //initialize with whatever
a.push_back(foo);
make_point फ़ंक्शन कैसे काम करता है, क्या स्थानीय var mypoint वापसी के बाद दायरे से बाहर नहीं होगा? –
@ विनीत डीओराज: 'मेक_पॉइंट' 'mypoint' की एक प्रति देता है। –