谁能帮忙解决Vector的问题(erase()和clear())都出错
主要程序如下:
class A
{
vector<B*> BPED;
};
class B
{
…………
};
vector<A*>::iterator ater;
main(void)
{
A *newA;
newA = (…………); //实现A;
A *newC
memcpy(newC,newA,sizeof(A));
ater = newC->BPED.begin();
newC->BPED.erase(ater); //这里程序会直接死掉;
newC->BPED.clear(); //屏蔽上面的一行这里也会死掉;
}
求解啊……大虾们,坐等答案!
[解决办法]
A类的复制使用operator = 不要memcpy
[解决办法]
memcpy(newC,newA,sizeof(A));
当我看到这句代码的时候我就知道LZ离错误不远了。
[解决办法]
1、貌似newC->BPED没有push_back过。
2、不要用memcpy来拷贝类对象。
[解决办法]