vector定义二维数组赋值顺序不同输出结果不同

    vector<vector<int>>array;    //大容器

    vector<int>v1;                //小容器
    vector<int>v2;
/*
    array.push_back(v1);    
    array.push_back(v2);
*/
    for (int i = 0; i < 10; i++) {
        v1.push_back(i);
        v2.push_back(i+10);
    }

    array.push_back(v1);        
    array.push_back(v2);
    array.push_back(v3);


    for (vector<vector<int>>::iterator it = array.begin(); it != array.end(); it++) {
        for (vector<int>::iterator vbegin = (*it).begin(); vbegin != (*it).end(); vbegin++) {
            cout << *vbegin << "  ";
        }
        cout << endl;
    }

注释掉的是我的第一种写法,但是最后输出的时候没有任何输出,知道先赋值在push_back,请问两者的实现到底有什么差异呢?

你小容器里吗都没装东西,直接就添加到大容器,肯定没有输出啊,都是空的