我非常确定向量调用了包含对象的析构函数,我只是在主向量上使用了 clear() 然后我重用了向量并且存储在其中的向量的值没有被清除......
编辑 - 代码:
vector<vector<int> > flush1;
flush1.reserve(4);
for(int i = 0; i != 4; ++i) flush1[i].reserve(7);
flush1.clear();
flush1[0].push_back(some_int);
flush1[1].push_back(some_int);
flush1[2].push_back(some_int);
flush1[3].push_back(some_int);
cout the size from flush1[0-3];
flush1.clear();
然后再次
flush1[0].push_back(some_int);
flush1[1].push_back(some_int);
flush1[2].push_back(some_int);
flush1[3].push_back(some_int);
并从flush1 [0-3]计算大小 cout-s 他们以前的大小+新大小(新旧相加)