Xin chào mọi người, em đang làm một số bài tập thì bỗng dưng gặp unique_ptr, em có lên google xem mà vẫn chưa hiểu gì hết. Nó được sử dụng thế này:
typedef int Distance;
typedef int Vertex;
class StlHeap
{
public:
using T = std::pair<Distance, Vertex>;
using Queue = std::priority_queue<T, std::vector<T>, std::greater<T>>;
StlHeap() {
queue.reset(new Queue());
}
bool empty() const {
return queue->empty();
}
void update(Vertex v, Distance d) {
queue->push(std::make_pair(d, v));
}
void clear() {
queue.reset(new Queue());
}
std::pair<Distance, Vertex> pop() {
std::pair<Distance, Vertex> top = queue->top();
queue->pop();
return top;
}
private:
std::unique_ptr<Queue> queue;
};
Mong các anh chị xem và giải thích giúp em về smart pointer trong ví dụ trên với ạ. Em xin cảm ơn nhiều.