结构体sort()

#include <iostream>
#include <cstdio>
#include <algorithm>//sort要包含的头文件
#include <time.h>
using namespace std;

struct st
{
    int x,y;
};
st s[10];

bool cmp(st a,st b)//自定义的比较函数
{
    if (a.x<b.x)//先按第一位数升序排列
    {
        return true;
    }

    else if (a.x==b.x)
    {
        if (a.y<b.y)//再按第二位数升序排列
        {
            return true;
        }
    }

    return false;
}

int main()
{
    srand(time(NULL));
    int i;
    for (i=0;i<10;i++)//生成随机数产生样例
    {
        s[i].x=rand()%10;
        s[i].y=rand()%10;
    }

    for (i=0;i<10;i++)
    {
        printf("%d %d\n",s[i].x,s[i].y);
    }

    printf("\n");
    sort(s,s+10,cmp);// sort默认升序排列 

    for (i=0;i<10;i++)
    {
        printf("%d %d\n",s[i].x,s[i].y);
    }

    return 0;
}

原文地址:https://www.cnblogs.com/hemeiwolong/p/8994986.html

时间: 2024-11-10 14:46:20

结构体sort()的相关文章

自己创建map结构体 sort + cmp

#include <iostream> #include <vector> #include <algorithm> using namespace std; struct Point { int x, y; }; struct Map { Point p; float f; }; bool cmp(Map x, Map y) { return x.f < y.f; } int main() { vector<Map> vec; for (int i

Codeforces 801C Voltage Keepsake 结构体sort排序+贪心

#include <bits/stdc++.h> using namespace std; struct In{ long long a, b; double t; }s[100005]; bool cmp(In p, In q) { if(p.t < q.t) return true; else if(p.t == q.t && p.a < q.a) return true; return false; } int main() { long long n, p;

开门人和关门人(结构体+sort)

每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签 到.签离记录,请根据记录找出当天开门和关门的人. Input 测试输入的第一行给出记录的总天数N ( > 0 ).下面列出了N天的记录. 每天的记录在第一行给出记录的条目数M ( > 0 ),下面是M行,每行的格式为 证件号码 签到时间 签离时间 其中时间按“小时:分钟:秒钟”(各占2位)给出,证件号码是长度不超过15的字符串. Output 对每一天的记录输出1行,即当天开门和关门人的证件号码,中间用1空格分隔

【转】 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能讲讲其用法: 1.sort入门: 使用sort需要包含algorithm头文件,完整代码如下 #include<iostream> #include<vector> #include<algorithm>//貌似可以不用,但最好加上. using namespace std

【STL学习】sort函数之自定义结构体数组

最近经常用到结构体数组排序,所以把用sort对结构体数组排序整理一下. #include<iostream> #include<algorithm>//需要加该头文件 using namespace std; struct define{ int a; int b; }d[10]; bool compare(const define &x,const define &y); int main() { for(int i=0;i<10;i++){ cin>

C++ 结构体多元素sort排序调用时的写法

//总结一下,结构体数据排序的快速写法 //以后在遇到需要写的时候,不要迟疑快速写完 struct node { int u, v, w; }a[10000]; //假设该结构体有3个元素 //现在仅实现结构体数组按照w的值从小到大的排序 //1.基于C++的重载写法,写在结构体的定义内 如下: struct node { int u, v, w; bool operator <(const node &x)const { return w<x.w; //升序排列 } }; //现在提

结构体快排回顾(sort)

一般来说,我做竞赛的时候排序一般用快排 很快很方便 普通sort(从小到大) sort(a,a+n); 直接贴一段代码吧,包含了vector,sort,结构体等简单东西综合 #include <iostream> #include <vector> #include <algorithm> using namespace std; typedef struct example { int elem1; int elem2; }example; /*这个compariso

sort+结构体实现二级排序

之前介绍的sort函数由于其效率较高,使用较为简单让我用起来那叫一个爽,今天再写一篇使用sort+结构体实现二级排序的方法. 还是先想个问题吧,比如我想输入5个同学的名字和身高,然后得到他们身高的降序,但是如果出现相同身高的情况,名字的拼音靠前的排在前面. 好,现在这个问题已经涉及到了二级排序,要按照身高的降序和姓名的升序排列,那么就要先定义一个结构体,将姓名和身高都包含进去,然后用sort对结构体排序,而实现二级排序,关键在于自己写的cmp函数(sort的比较方法) 1 #include<io

转载 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

转载自:http://www.cnblogs.com/cj695/p/3863142.html sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能讲讲其用法: 1.sort入门: 使用sort需要包含algorithm头文件,完整代码如下 #include<iostream> #include<vector> #include<