我正在声明一个自定义优先级队列,包括 pair<pair<int,int>int >,如何清除它?

I'm declaring a custom priority queue of pair< pair<int,int> , int >, how do I clear it?

本文关键字:int lt gt pair 何清除 清除 队列 优先级 自定义 包括 一个      更新时间:2023-10-16
bool comp(pair< pair<int,int>, int > left, pair< pair<int,int>, int > right) { return left.second > right.second;}
//auto cmp = [](pair< pair<int,int>, int > left, pair< pair<int,int>, int > right) { return left.second > right.second;};
priority_queue< pair< pair<int,int>, int >,vector< pair< pair<int,int>, int > >, std::function<bool(pair< pair<int,int>, int >,pair< pair<int,int>, int >) > > q(comp);

我应该如何清理它?尝试清除时会出现错误。使用此功能:

template <class T, class S, class C>
void clearpq2(priority_queue<T, S, C>& q){
    q=priority_queue<T, S, C>();
}

尝试

q = priority_queue< pair< pair<int,int>, int >,vector< pair< pair<int,int>, int > >, std::function<bool(pair< pair<int,int>, int >,pair< pair<int,int>, int >) > > (comp);