如何將一個結構push_back到一個向量中?push_back()一個結構到一個向量中
struct point {
int x;
int y;
};
vector <point> a;
a.push_back(???);
如何將一個結構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
,它使它非POD,也許你不能控制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將創建點結構的副本 - 這樣p
可以安全,一旦超出被毀範圍。
point foo; //initialize with whatever
a.push_back(foo);
make_point函數如何工作,返回後局部var mypoint是否超出範圍? – 2016-03-27 07:58:03
@VineetDeoraj:'make_point'返回'mypoint'的副本。 – 2016-03-28 11:18:29