在我的代码中,我有一个指向对象的指针向量SomeClass和一个(自定义比较)基于向量的优先级队列,其中包含指向对象的指针SomeClass:
std::vector<SomeClass*> my_vector;
std::priority_queue<SomeClass*, vector<SomeClass*>, CustomCompare> my_queue;
最初my_vector是空的并且my_queue是满的。逐渐my_queue被清空成my_vector这样:
my_vector.push_back(my_queue.top());
my_queue.pop();
我的问题是:是否会my_queue.pop()删除分配给SomeClass被推回的对象的内存,my_vector从而导致元素my_vector成为悬空指针?或者,该向量是对返回的指针指向的对象进行深拷贝还是浅拷贝my_queue.top()?