关于vector> 犯得一个小错误

执行如下代码:

  //创建vector v1和v2
    vector v1;
    vector v2;
 //创建存放vector的vector vv,并且将v1和v2加入到vv
    vector> 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 v1;
    vector v2;

    vector *> 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> 犯得一个小错误)