2011-03-13 53 views

回答

33
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)); 
+1

make_point函數如何工作,返回後局部var mypoint是否超出範圍? – 2016-03-27 07:58:03

+0

@VineetDeoraj:'make_point'返回'mypoint'的副本。 – 2016-03-28 11:18:29

7
point p; 
p.x = 1; 
p.y = 2; 

a.push_back(p); 

需要注意的是,由於a是一個點的矢量(不是指針給他們),在的push_back將創建點結構的副本 - 這樣p可以安全,一旦超出被毀範圍。

1
point foo; //initialize with whatever 
a.push_back(foo);