繁体   English   中英

cpp中优先队列的自定义运算符

[英]custom operator for priority queue in cpp

使用自定义运算符声明这样的优先级队列时出错

struct compare1{
         bool operator()(Interval &s1,Interval &s2){
             if(s1.start!=s2.start)return s1.start<s2.start;
             return s1.end<s2.end;
         }
     };
priority_queue(Interval,vector<Interval>,compare1)p;

错误->/code/Solution.cpp:在成员函数'int Solution::minMeetingRooms(std::vector&)'中:/code/Solution.cpp:33:23:错误:在'('标记priority_queue()之前缺少模板参数间隔,向量,比较1)p;

^ /code/Solution.cpp:33:32: 错误:',' 标记之前的预期主表达式优先级队列(间隔,向量,比较 1)p;

^ /code/Solution.cpp:33:49: 错误:',' 标记之前的预期主表达式priority_queue(Interval,vector,compare1)p; ^

/code/Solution.cpp:33:58: 错误:')' 标记之前的预期主表达式 priority_queue(Interval,vector,compare1)p;

我的整个代码

class Solution {
public:
    /**
     * @param intervals: an array of meeting time intervals
     * @return: the minimum number of conference rooms required
     * 
     */
     static bool compare(Interval s1 ,Interval s2){
         if(s1.start!=s2.start)return s1.start<s2.start;
         return s1.end<s2.end;
     }

     struct compare1{
         bool operator()(Interval &s1,Interval &s2){
             if(s1.start!=s2.start)return s1.start<s2.start;
             return s1.end<s2.end;
         }
     };
    int minMeetingRooms(vector<Interval> &intervals) {

        sort(intervals.begin(),intervals.end(),compare);
        priority_queue(Interval,vector<Interval>,compare1)p;
        p.push(intervals[0]);
        int ans = 0;
        for(int i=1;i<intervals.size();i++){
            Interval curr = interevals[i];
            Interval earliest = p.top();
            p.pop();


            if(earliest.end<curr.start){
                earliest.start = min(earliest.start,interevals[i].start);
                earliest.end = max(earliest.end,intervals[i].end);
                pq.push(earliest);
                ans++;
            }
            else{
                p.push(interevals[i]);
            }

        }
        return ans;


    }
};

用这个,

priority_queue<Interval,vector<Interval>,compare1> p;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM