有个自定义的类 在里面动态申请了内存,在析构函数中delete ,然后把它加到vector中,后来发现如果超出了这个临时变量的生存区间,调用析构函数后会出错。
vector<MSGINFO> vMsg;
{
MSGINFO msg;
msg.save("..."); //内部申请了内存并保存了参数
vMsg.push_back(msg);
}
         //离开了msg的有效范围后再访问vMsg中的元素就出错了
看了看,push_back实际上是引用,怎么能让它复制一个放到向量中呢?
或者有没有更好的办法,不用复制一份直接把msg放到vector中?