いくら「vector」と言っても、実際のデータ構造はほぼ普通の1次元配列
……つまり、aaとaは両方intの1次元配列と考えて差し支えない
要するに、「aa.push_back(a);」は、「aa[i] = a」と書くようなもの。そりゃ上手くいかないわけだ

ちなみに、vectorを入れ子にすれば2次元以上の配列も宣言可能。詳しくはググれ