c++で<vector>を使って2次元の配列を動的に確保したいのですが、

vector<vector <int *> >A;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
A[i].push_back(new int)
}
A.push_back(new int)
}

こんなの書いたのですが、コンパイルできませんでした。
厨房なので、どう直したらよいのかよくわかりません。
わかる人教えてくださいませ。