很简单,你std::vector<Room, std::allocator<Room> >
这个,改成std::vector<Room* >
存指针,不要存对象。
vector会重建,析构和再分配过程中,你的析构和拷贝构造函数没写好,就会出问题。
显然你在这个过程中出现了浅拷贝现象。
就算你Room的析构构造写对了,也还是推荐存指针,这样效率也高得多。
这个,改成std::vector<Room* >
存指针,不要存对象。
vector会重建,析构和再分配过程中,你的析构和拷贝构造函数没写好,就会出问题。
显然你在这个过程中出现了浅拷贝现象。
就算你Room的析构构造写对了,也还是推荐存指针,这样效率也高得多。