You use new to perform dynamic allocation. It returns a pointer that points to the dynamically allocated object.
You have no reason to use new, since A is an automatic variable. You can simply initialise A using its constructor:
vector<vector<int> > A(dimension, vector<int>(dimension));