我宣布一对自定义优先级队列&lt; pair <int,int>,int&gt;,我该如何清除它?

时间:2017-03-05 09:35:02

标签: c++ priority-queue

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>();
}

1 个答案:

答案 0 :(得分:0)

尝试

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);