优先队列

struct Point
{
    double x;
    double y;
    double z;
};

int main()
{
    auto comparator = [](Point p1, Point p2)
    {
        return p1.z > p2.z;
    };

    priority_queue<Point, vector<Point>, decltype(comparator)> pq(comparator);
    pq.push({ 1,1,4 });
    pq.push({ 1,1,2 });
    pq.push({ 1,1,5 });
    pq.push({ 1,1,1 });
    pq.push({ 1,1,9 });
    pq.push({ 1,1,6 });
    pq.push({ 1,1,4 });
    pq.push({ 1,1,3 });

    while (!pq.empty())
    {
        Point p = pq.top();
        pq.pop();
        printf("%.4f %.4f %.4f\n", p.x, p.y, p.z);
    }
    return 0;
}
struct Point
{
    double x;
    double y;
    double z;

    friend bool operator < (Point p1, Point p2)
    {
        return p1.z > p2.z;
    };
};

int main()
{
    priority_queue<Point> pq;
    pq.push({ 1,1,4 });
    pq.push({ 1,1,2 });
    pq.push({ 1,1,5 });
    pq.push({ 1,1,1 });
    pq.push({ 1,1,9 });
    pq.push({ 1,1,6 });
    pq.push({ 1,1,4 });
    pq.push({ 1,1,3 });

    while (!pq.empty())
    {
        Point p = pq.top();
        pq.pop();
        printf("%.4f %.4f %.4f\n", p.x, p.y, p.z);
    }
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容