在我的代码中,我有一个指向对象的指针向量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()
?