执行如下代码:
//创建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);
代码的流程是:
- 创建vector v1和v2
- 创建存放vector的vector vv,并且将v1和v2加入到vv
- 请问,修改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也可以访问到修改之后的数据。