class Item
{
public:
int * p_data;
Item(int n)
{
p_data=new int[n];
}
~Item()
{
delete [] pdata;
}
};
std::vector<Item> v;
v.emplace_back(10);
v.emplace_back(20);
类似这种,然后发现v[0]->pdata用的时候segment fault了,原来是默认的vector的capacity 是1,如果增加元素,会重新生成一个capacity是2的,然后拷贝过去,我这边没实现拷贝构造函数,默认的拷贝构造就是拷贝了p_data的值,然后析构掉了p_data,这样就segment fault了。
若问 stl里面还有这种自动resize的容器么。。。
--
FROM 61.48.14.*