Ваше предположение верно.Но если вы хотите изменить размеры всех внутренних векторов, сделайте следующее:
vector< vector< long > > v;
v.resize(10);
for(size_t i = 0 ; i < 10 ; i++ )
v[i].resize(20);
Просто помните, что когда вы используете v
в качестве v[i][j]
, убедитесь, что 0<=i<10
и 0<=j< 20
.
Теперь, почему вы получаете ошибку с тем, что делаете?
v.resize(1);
v[0].resize(1); //that means, the constraint is : `0<=i<1` and `0<=j<1`
v[0][0].push_back(0);
v[0][1].push_back(-1); //problematic line!
Вы получаете ошибку, потому что не уверены, что 0<=i<1
и 0<=j<1
ограничения при вызове push_back
во второй раз.