如何获取类向量的输入?
我有一个POINT由 x 和 y 坐标组成的类。我有一个这个类的向量。如何从输入中获取坐标?我试过了,P.x.push_back(x)但显然它不起作用。我想知道如何实现这一目标?我想得到像 {{1, 3}, {5, 2}, {7, 2}} 这样的向量。
class POINT {
public:
int x, y;
};
int main() {
int n;
cin >> n;
vector<POINT> P(n);
int x, y;
for(int i = 0; i < n; i++) {
cin >> x >> y;
P.x.push_back(x);
P.y.push_back(y);
}
return 0;
}
回答
如果您使用 C++11 或更高版本,则可以使用初始化列表。
for(int i = 0; i < n; i++) {
cin >> x >> y;
P.push_back({x, y});
}
另一种方法是创建一个临时结构并推送(复制)它。这种方式在 C++03 中也可用。
for(int i = 0; i < n; i++) {
cin >> x >> y;
POINT point = {x, y};
P.push_back(point);
}