ecnuoj2947:行数据的排序

给定n行整型数据,对其进行排序,排序规则是:比较第一个数字,第一个数字大的排在前面,第一个数字相同再比较第二个数字,以次类推

可直接对vector进行排序

定义vector类型数组vt[MAXN],其中数组的每一个元素是一个vector,定义比较函数直接对vector进行排序即可

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <vector>
using namespace std;

const int MAXN = 1000 + 10;
vector<int> vt[MAXN];

int cmp(vector<int> a, vector<int> b){
    return a > b;
}

void Init(int n){
    for (int i = 0; i < n; ++i) {
        vt[i].clear();
    }
}

int main(){
    int T;
    scanf("%d", &T);
    while (T--){
        int n;
        scanf("%d", &n);
        Init(n);
        for (int i = 0; i < n; ++i) {
            int number;
            scanf("%d", &number);
            while (number != -1){
                vt[i].push_back(number);
                scanf("%d", &number);
            }
        }

        sort(vt, vt + n, cmp);

        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < vt[i].size(); ++j) {
                printf("%d ", vt[i][j]);
            }
            printf("\n");
        }
    }
    return 0;
}
posted @ 2022-02-16 07:46  dctwan  阅读(66)  评论(0编辑  收藏  举报