如何将push_back
编码成 vector ?
struct point {
int x;
int y;
};
std::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));