私のコードには、のオブジェクトへのポインタのベクトルと、次のオブジェクトへのポインタを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()