美文网首页
关于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