好多坑啊。。。。
【 在 thinkgrass 的大作中提到: 】
:
: 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的容器么。。。
:
: --
:
发自「今日水木 on Mi Note 3」
--
FROM 103.238.135.*