蒟蒻蒻蒻 2022-09-03 11:28 采纳率: 57.1%
浏览 28
已结题

c++如何将结构体数组进行排序

我在做一道大模拟的题,想对结构体的数组排序,网上查了没有

尽量使用sort排序

#include <iostream>
#include <algorithm>
#include <map>

using namespace std;

map<string,int> cards;
string card[] = {"1M","2M","3M","4M","5M","6M","7M","8M","9M",
                 "1P","2P","3P","4P","5P","6P","7P","8P","9P",
                 "1S","2S","3S","4S","5S","6S","7S","8S","9S",
                 "E","S","W","N","B","F","Z",
                 "PASS","REVERSE","DOUBLE"};

struct people
{
    int cardss[14];
    sort(cardss,cardss + 13);
} ABCD[4];
string card_new[149];

int l = 0;
bool cmp(people a,people b)
{
    return a.cardss[l] > b.cardss[++l];
    //return a.cardss > b.cardss;
}

int now = 0;
void in_first()
{
    char a[] = {'A','B','C','D'};
    for(int i = 0;i < 13;i++)
    {
        for(int j = 0;j < 4;j++)
        {
            cout << a[j] << " IN " << card_new[now] << endl;
            map<string,int> :: iterator itnum = cards.find(card_new[now]);
            ABCD[j].cardss[i] = itnum->second;
            now++;
        }
    }
    return;
}

void in(int j)
{
    char a[] = {'A','B','C','D'};
    cout << a[j] << " IN " << card_new[now] << endl;
    map<string,int> :: iterator itnum = cards.find(card_new[now]);
    ABCD[j].cardss[13] = itnum->second;
    now++;
}

void out(int j)
{
    char a[] = {'A','B','C','D'};
    cout << a[j] << " OUT " << card_new[now] << endl;
    ABCD[j].cardss[13] = -1;
}

int main()
{
    for(int i = 0;i < (sizeof(card)/sizeof(card[0]));i++)
    {
        cards[card[i]] = i;
    }

    for(int i = 0;i < 148;i++)
        cin >> card_new[i];
    in_first();

    for(int i = 0;i < 4;i++)
    {
        for(int j = 0;j < 13;j++)
        {
            cout << ABCD[j].cardss[i] << " ";
        }
        cout<<endl;
    }

    int i = 0;
    /*
    while(!ifwin())
    {
        in(i);
        out(i);
        ifpeng();
        if(i%4 == 0)
            i = 0;
    }
    */

    return 0;
}

题目连接:https://www.luogu.com.cn/problem/P7147?%ra=link

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-03 13:01
    关注
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月3日
  • 修改了问题 9月3日
  • 创建了问题 9月3日

悬赏问题

  • ¥15 nginx的使用与作用
  • ¥100 关于#VijeoCitect#的问题,如何解决?(标签-ar|关键词-数据类型)
  • ¥15 一个矿井排水监控系统的plc梯形图,求各程序段都是什么意思
  • ¥15 ensp路由器启动不了一直报#
  • ¥50 安卓10如何在没有root权限的情况下设置开机自动启动指定app?
  • ¥15 ats2837 spi2从机的代码
  • ¥200 wsl2 vllm qwen1.5部署问题
  • ¥100 有偿求数字经济对经贸的影响机制的一个数学模型,弄不出来已经快要碎掉了
  • ¥15 数学建模数学建模需要
  • ¥15 已知许多点位,想通过高斯分布来随机选择固定数量的点位怎么改