不想通过push_back来增加元素,想尝试下标的方式,根据网友所说下标访问的前提是该内存中存在元素,我想resize不是重新分配内存了么,应该可以实现。但是实际出错了,以下是我的代码 //调试时以上没有问题,问题出在下面 |
|
20分 |
edges.resize(4);
edges[3].resize(4); n=edges.size(); //size确实变了 nn=edges[3].size(); for(i=0;i<edges.size();i++) { edges[i][3]=edges[3][i]=4; // 不是edges[0] edges[1] … 都有4个元素,上面的一段代码就用了一个for循环对每个元素做resize操作,那样其实是正确的,但是这里没有这么做 } resize会修改vector的大小,里面的元素都是有效的,使用size接口访问,返回的值会变 |
我想问的不是resize和reverse的区别啦。不过还是谢谢你,我知道自己错哪了,是因为我的edges[3].resize(4)只是将第三行扩充为4列,应该改成
for(int i=0;i<4;i++) edges[i].resize(4); 对吗,非常感谢 |