zoukankan      html  css  js  c++  java
  • sort函数用于vector向量的排序

    参考资料:
    关于C++中vector和set使用sort方法进行排序
    作者注:这篇文章写得相当全面,包括对vector和set中不同数据类型(包括结构体)的排序,还有一些还没看懂……特作此摘录,供当前及日后的学习

    sort函数默认从小到大的排序。

    一般类型的排序(int,double,char)

        vector<int> vec;
        for (int i = 0; i < 10;i++)
        {
            vec.push_back(rand());
        }
        sort(vec.begin(), vec.end());
        for (vector<int>::iterator it = vec.begin(); it < vec.end(); it++)
        {
            cout << *it << " ";//注意这里使用*表示解引用
        }

    结果:
    这里写图片描述

    结构体类型的排序(struct)

    结构体定义如下:(试验样本)

    typedef struct ClassDis
    {
        double distance;
        int class1;
        int class2;
    }ClassDis;

    需要自己定义一个比较函数(因为sort默认从小到大排序,因此我们只需要定义什么情况属于“小于”就行了)

    //自定义“小于”
    bool comp(const ClassDis &a, const ClassDis &b)
    {
        return a.distance < b.distance;
    }
        vector<ClassDis> ddd;
        //随机赋值
        for (double a = 0; a < 10;a++)
        {
            ClassDis aaa{ (double)rand(), (int)a, (int)(a + 2) };
            ddd.push_back(aaa);
        }
        //sort
        sort(ddd.begin(), ddd.end(), comp);
        //输出结果
        for (vector<ClassDis>::iterator it = ddd.begin(); it < ddd.end(); it++)
        {
            cout << it->distance << "," << it->class1 << "," << it->class2 << endl;
        }

    结果:
    这里写图片描述

  • 相关阅读:
    js高级-闭包
    js作用域
    js执行上下文与执行上下文栈
    js原型及原型链
    去除数组中重复的元素值
    树[省选联考2020]
    GDOI2020 游记
    Problem b[HAOI2011]
    分零食[JSOI2012]
    移动金币「SDOI2019」
  • 原文地址:https://www.cnblogs.com/whuls/p/9356525.html
Copyright © 2011-2022 走看看