直接mRequestVector.emplace_back(msg);和Message *msg = new Message(*this);后再mRequestVector.emplace_back(msg);有什么区别
时间: 2024-06-11 07:07:12 浏览: 67
c++push_back 以及 emplace_back 的区别
直接调用mRequestVector.emplace_back(msg)将Message对象的指针添加到mRequestVector中,而使用Message *msg = new Message(*this)创建了一个新的Message对象并将其指针添加到mRequestVector中。因此,区别在于是否创建了新的Message对象。如果使用前者,添加到mRequestVector中的指针将指向原始Message对象,如果后者,将创建一个新的Message对象并添加其指针到mRequestVector中。
阅读全文