美文网首页
关于vector> 犯得一个小错误

关于vector> 犯得一个小错误

作者: DayDayUpppppp | 来源:发表于2017-05-01 17:08 被阅读0次

    执行如下代码:

      //创建vector v1和v2
        vector<int> v1;
        vector<int> v2;
     //创建存放vector的vector vv,并且将v1和v2加入到vv
        vector<vector<int>> vv;
        vv.push_back(v1);
        vv.push_back(v2);
    
    //修改v1和v2,请问vv跟着变化?
        v1.push_back(1);
        v2.push_back(2);
    

    代码的流程是:

    1. 创建vector v1和v2
    2. 创建存放vector的vector vv,并且将v1和v2加入到vv
    3. 请问,修改v1和v2,请问vv跟着变化?

    答案是不会的。

    那么如果先让vv[0]和v1的数据保持同步,应该怎么办?

        vector<int> v1;
        vector<int> v2;
    
        vector<vector<int> *> vv;
        vv.push_back(&v1);
        vv.push_back(&v2);
    
        v1.push_back(1);
        v2.push_back(2);
       
     //输出的结果相同
        cout << (*vv[0])[0] << endl;
        cout << v1[0] << endl;
    

    这样修改v1和v2,之后通过vv也可以访问到修改之后的数据。

    相关文章

      网友评论

          本文标题:关于vector> 犯得一个小错误

          本文链接:https://www.haomeiwen.com/subject/ltxqtxtx.html