vector<struct>的push_back怎么实现?

我不会用vcetor—

struct node{
    int a,b;
};
vector<node>a;
int z,x;
scanf("%d%d",&z,&x); //cin>>z>>x;

如果我想要把z放入a[1].a,x放入a[1].b的话,
直接push_back好像不太行—

#include <iostream>
#include <vector>
using namespace std;

struct node{
    int a,b;
};
int main()
{        
    vector<node>a; //类型是node,push_back的类型也是node
    node n;
    cin >> n.a >> n.b;
    a.push_back(n);

    cout << a[0].a << " " << a[0].b <<  endl;

    return 0;
}