首页 > 解决方案 > C++ 中的优先级队列

问题描述

我正在我的一个边缘评估板上进行实时对象检测,并且对 C++ 应用程序代码中优先级队列的使用有疑问

设想:

我正在使用多个线程(比如 4)来读取(1)、对象检测(2)和显示任务(1)。作为参考,我正在关注此处提供的代码object detection on multiple threads。在代码中,我不明白显示任务的优先级队列是如何定义的。这是代码示例,

#include <opencv2/opencv.hpp>
#include <queue>
using namespace std;
using namespace cv;
// comparison algorithm for priority_queue

class Compare {
    public:
    bool operator()(const pair<int, Mat> &n1, const pair<int, Mat> &n2) const {
        return n1.first > n2.first;
    }
};

queue<pair<int, Mat>> read_queue;                                               // read queue
priority_queue<pair<int, Mat>, vector<pair<int, Mat>>, Compare> display_queue;  // display queue

我不明白类比较等的用法。

提前致谢

标签: c++multithreadingopencvqueue

解决方案


推荐阅读