【问题标题】:custom operator for priority queue in cppcpp中优先级队列的自定义运算符
【发布时间】:2020-03-26 02:41:19
【问题描述】:

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

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;

Error->/code/Solution.cpp:在成员函数'int Solution::minMeetingRooms(std::vector&)'中: /code/Solution.cpp:33:23:错误:在“(”标记之前缺少模板参数 priority_queue(Interval,vector,compare1)p;

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

^ /code/Solution.cpp:33:49:错误:“,”标记之前的预期主表达式 priority_queue(间隔,向量,比较1)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;


    }
};

【问题讨论】:

标签: c++ priority-queue


【解决方案1】:

使用这个,

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

【讨论】:

    猜你喜欢
    • 2012-03-03
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 2022-01-07
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多