码迷,mamicode.com
首页 > 编程语言 > 详细

7-37 模拟EXCEL排序 (25分)--优先队列

时间:2020-04-24 23:22:35      阅读:361      评论:0      收藏:0      [点我收藏+]

标签:std   main   字符串大小   bre   大小   else   excel   %s   bsp   

#include <iostream>
#include <queue>
#include <cstdio>
using namespace std;
int C;
int cmp(const char a[], const char b[])//比较字符串大小的函数
{
    for (int i = 0; i < 10; i++)
    {
        if (a[i] == \0 || b[i] == \0)
            break;
        if (a[i] == b[i])
        {
            if (a[i] != \0)
                continue;
            else
                break;
        }
        else if (a[i] > b[i])
        {
            return 1;
        }
        else
            return -1;
    }
    return 0;
}
struct node//结构体定义
{
    char num[10];
    char name[10];
    int score;
    bool operator < (const struct node& a)const
    {
        if (C == 1)
        {
            return (cmp(num, a.num) == 1);
        }
        else if (C == 2)
        {
            if (cmp(name, a.name) == 0)
            {
                return (cmp(num, a.num) == 1);
            }
            else if (cmp(name, a.name) == 1)
                return true;
            else return false;
        }
        else if (C == 3)
        {
            if (score == a.score)
                return (cmp(num, a.num) == 1);
            else
                return score > a.score;
        }
    }
};
int main()
{
    priority_queue<struct node> q;
    int N;
    cin >> N >> C;
    for (int i = 0; i < N; i++)
    {
        struct node t_node;
        cin >> t_node.num >> t_node.name >> t_node.score;
        q.push(t_node);
    }
    while (!q.empty())
    {
        //cout << q.top().num << ‘ ‘ << q.top().name << ‘ ‘ << q.top().score << endl;
     //用cout会超时 printf("%s %s %d\n", q.top().num, q.top().name, q.top().score); q.pop(); } return 0; }

 

7-37 模拟EXCEL排序 (25分)--优先队列

标签:std   main   字符串大小   bre   大小   else   excel   %s   bsp   

原文地址:https://www.cnblogs.com/2020R/p/12770856.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!