今天想要用vector实现二维数组的功能,尝试了把二维vector.谁知道刚上手就遇到了雷.
代码的形式大致如下:
vector<vector<int>>vv(3);
vv.clear();
for (int i = 0; i < 3; i++)
vv[i].push_back(0);
因为要重复使用该二维vector,所以进行了清空操作.然而却遇到了问题:vector subscript out of range
后来在单步调试时发现了,clear()会让二维数组的size变成0,之前声明的3个一维数组的结构遭到破坏.
执行到for的头部时,自动窗口如下:
对上述代码做下改变:
vector<vector<int>>vv(3); vv.clear();
同样是执行到for的头部时,自动窗口如下:vv.resize(3); for (int i = 0; i < 3; i++) vv[i].push_back(0);