精华内容
下载资源
问答
  • set 从大到小排序
    千次阅读
    2019-03-14 16:39:25
    #include<iostream>
    #include<set>
    using namespace std;
    struct cmp1{
    	   bool operator () ( const int &a , const  int &b ) const {
    	        return a > b; 
    	   }  
    };
    struct cmp2{
    	   bool operator () ( const int &a , const  int &b ) const {
    	        return a < b; 
    	   }  
    };
    int   main(void){
    	
    	//  set<int > s;              //默认从小到大 
        //  set<int,greater<int> > s; //从大到小 
    	//  set<int,less<int> > s;    //从小到大 
        //  set<int, cmp1 > s;         //从大到小 
    	//  set<int, cmp2 > s;         //从小到大
    	s.insert(5); 
    	s.insert(4);
    	s.insert(3);
        s.insert(2);
    	s.insert(1);
    	s.insert(0);
    	set<int> ::iterator it;
    	for(   it = s.begin() ; it!=s.end() ;it++)
    	     cout<< *it<<" ";
    }

     

    更多相关内容
  • 实现对set容器的从大到小降序排列

    千次阅读 2020-09-08 15:24:41
    我们都知道set容易中的排序是从小到大的,我们要让他大到小排序,需要用到的就是反函数,与回调函数类似。 class myCompareInt() { public: bool operator()(int v1, int v2) { return v1 > v2; } } void ...

    我们都知道set容易中的排序是从小到大的,我们要让他从大到小排序,需要用到的就是仿函数,与回调函数类似。

    class myCompareInt()
    {
    public:
    	bool operator()(int v1, int v2)
    	{
    		return v1 > v2;
    	}
    };
    void test()
    {
    	set<int, myCompareInt>s;
    	s.insert(10);
    	s.insert(50);
    	s.insert(30);
    	s.insert(40);
    	s.insert(20);
    	for(set<int, myCompareInt>::iterator it = s.begin(); it!=s.end();it++)
    	{
    		cout<<*it<<endl;
    	}
    }
    
    int main()
    {
    	test();
    	system("pause");
    	return 0;
    }
    
    展开全文
  • map和set都是按照从小到大的顺序进行排序的,且排序好后不能轻易更改,否则会破坏组织结构; 如何让其在插入过程中可以自动的变成由大到排序方式呢? tips:set在进行插入的时候一般会按照**<来比较关键字...
    • map和set都是按照从小到大的顺序进行排序的,且排序好后不能轻易更改,否则会破坏组织结构;

    如何让其在插入过程中可以自动的变成由大到小的排序方式呢?

    tips:set在进行插入的时候一般会按照**<来比较关键字,所以其插入好的状态一般是从小到大;
    但是对于自定义类型,就需要
    重载<来支持这一操作;
    1、使用set前指定比较方式为
    greater**

    void test()
    {
        set<int,greater<int>>S2;
        S2.insert(10);
        S2.insert(100);
        S2.insert(200);
        for (set<int>::iterator it = S2.begin(); it != S2.end(); it++)
        {
            cout << *it << " ";
        }
    }
    

    2、利用仿函数(对于自定义类型,重载小括号)

    #include <iostream>
    #include<cstdlib>
    #include<string>
    #include<set>
    using namespace std;
    class person
    {
    public:
    person(string name, int age)
       {
    		this->m_name = name;
    		this->m_age = age;
    	}
    	string m_name;
    	int m_age;
    };
    
    class mycompare2
    {
    public:
    	bool operator()(const person& p1, const person& p2)const 
    	// 这个位置要加const修饰
    	{
    		if (p1.m_age > p2.m_age) //降序
    		{
    			return true;
    		}
    		return false;
    	}
    };
    
    void test4()
    {
    	set<person, mycompare2> p;
    	person p1("sss", 35);
    	person p2("aaa", 10);
    	person p3("bbb", 20);
    	person p4("ccc", 46);
    	person p5("ddd", 82);
    	p.insert(p1);
    	p.insert(p2);
    	p.insert(p3);
    	p.insert(p4);
    	p.insert(p5);
    	//插入自定义数据类型 需要指定排序规则
    	//显示
    	for (set<person, mycompare2>::iterator it = p.begin(); it != p.end(); it++)
    	{
    	cout << "姓名: " << (*it).m_name << "年龄: " << it->m_age << endl;
    	}
    }
    

    注:资料来源于网络,侵权删

    展开全文
  • 众所周知,set/map是自动按从小到大排序的,而且排好序和不可再修改,否则会破坏组织结构 使用要在排序前,指定它的排序规则 ①用greater方式 个人认为这个比较简单 void test() { set<int,greater<int>>S2...

    众所周知,set/map是自动按从小到大排序的,而且排好序和不可再修改,否则会破坏组织结构

    使用要在排序前,指定它的排序规则
    ①用greater方式
    个人认为这个比较简单

    void test()
    {
        set<int,greater<int>>S2;
        S2.insert(10);
        S2.insert(100);
        S2.insert(200);
        for (set<int>::iterator it = S2.begin(); it != S2.end(); it++)
        {
            cout << *it << " ";
        }
    }
    

    在这里插入图片描述
    ②用仿函数的方式
    NULL

    插入自定义类型

    以set为例
    应该就是这样的,但是不知道为什么一直报错
    严重性 代码 说明 项目 文件 行 禁止显示状态
    错误 C3848 具有类型“const mycompare2”的表达式会丢失一些 const-volatile 限定符以调用“bool mycompare2::operator ()(const person &,const person &)” 20315 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\xutility 1481

    解决方法 : 在仿函数那块加上const修饰

    #include <iostream>
    #include<cstdlib>
    #include<string>
    #include<set>
    using namespace std;
    
    class person
    
    {
    
    public:
    
    	person(string name, int age)
    
    	{
    
    		this->m_name = name;
    
    		this->m_age = age;
    
    	}
    
    	string m_name;
    
    	int m_age;
    
    };
    
    class mycompare2
    
    {
    
    public:
    
    	bool operator()(const person& p1, const person& p2)const // 这个位置要加const修饰
    
    	{
    
    		if (p1.m_age > p2.m_age) //降序
    
    		{
    
    			return true;
    
    		}
    
    		return false;
    
    	}
    
    };
    
    void test4()
    
    {
    
    	set<person, mycompare2> p;
    
    	person p1("sss", 35);
    
    	person p2("aaa", 10);
    
    	person p3("bbb", 20);
    
    	person p4("ccc", 46);
    
    	person p5("ddd", 82);
    
    	p.insert(p1);
    
    	p.insert(p2);
    
    	p.insert(p3);
    
    	p.insert(p4);
    
    	p.insert(p5);
    
    	//插入自定义数据类型 需要指定排序规则
    
    	//显示
    
    	for (set<person, mycompare2>::iterator it = p.begin(); it != p.end(); it++)
    
    	{
    
    		cout << "姓名: " << (*it).m_name << "年龄: " << it->m_age << endl;
    
    	}
    
    }
    
    展开全文
  • C++ set容器排序

    2020-05-20 00:52:47
    set> class Compare //仿函数 { public: bool operator()(int v1,int v2) { return v1 > v2; } }; void test() { std::set<int> m; m.insert(10); m.insert(20); m.insert(80); m.inse.
  • js实现数组从小到大大到小排序

    千次阅读 2020-08-31 18:43:24
    代码: <script> var arr=[2,5,3,9,1,8,7,4,6]//给出一个乱序的数组 arr.sort( function paixu(value1,...//替换为value2-value1可实现从大到小排序 }) document.write(arr) </script> 实现效果:
  • C++ 学习之set容器排序

    千次阅读 2021-10-30 12:10:26
    set容器默认排序规则为从小到大,利用仿函数,可以改变排序规则 分为内置数据类型排序和自定义数据类型排序 set与list容器排序区别: list容器的排序是一个自带的sort成员函数,需要在sort中传一个函数名来指定...
  • (1)由小到大 setint,lessint>> M;  M.insert(1960);  M.insert(1952);  M.insert(1771);  M.insert(1812);  M.insert(1960);  M.insert(2000);    setint,lessint>>::iterator N= M.beg
  • 主要介绍了 java中 Set与Map排序输出Writer详解及实例的相关资料,需要的朋友可以参考下
  • Java Set元素 排序

    千次阅读 2021-02-12 09:55:58
    Set排序set包括HashSet和TreeSet,HashSet是基于HashMap的,TreeSet是基于TreeMap的。TreeMap是用红黑树实现,天然就具有排序功能,“天然就具有排序功能”是指它拥有升序、降序的迭代器。那么HashSet怎么排序呢?...
  • set集合实现排序

    2014-03-05 23:56:47
    键盘输入以上数据(包括姓名,三门课成绩), 输入的格式:如:zhagnsan,30,40,60计算出总成绩, 并把学生的信息和计算出的总分数高低顺序存放在磁盘文件"stud.txt"中。(如果总分相同,按照姓名排序)
  • 今天编就为大家分享一篇Laravel find in set排序实例,具有很好的参考价值,希望对大家有所帮助。一起跟随编过来看看吧
  • Set集合排序

    千次阅读 2021-03-05 23:01:36
    TreeSet使用元素的自然顺序对元素进行排序,或者根据创建set时提供的Comparator进行排序,具体取决于使用的构造方法。通俗一点来说,就是可以按照排序后的列表显示,也可以按照指定的规则排序Set set = new ...
  • Java相关 public static void main(String[] args) { User u1=new User(1, "zhangsan");... //放入到Set集合中 Set userset=new HashSet(); userset.add(u1); userset.add(u2); userset.add(u3);
  • python set集合排序_Python Set集合

    千次阅读 2021-03-17 02:19:59
    形式上看,和字典类似,Python 集合会将所有元素放在一对括号 {} 中,相邻元素之间用“,”分隔,如下所示:{element1,element2,...,elementn}其中,elementn 表示集合中的元素,个数没有限制。 内容上看,同一...
  • 1.简单的集合排序 1 package com.demo.advice; 2 3 import java.util.Collections; 4 import java.util.LinkedList; 5 6 import com.alibaba.druid.sql.visitor.functions.Reverse; 7 8 ...
  • 主要介绍了python中的set实现不重复的排序原理,需要的朋友可以参考下
  • Set排序方法

    万次阅读 2019-04-22 21:04:28
    在讲解Set集合排序的几种方法之前,我们应该先清楚Set集合的几种类型以及特点,才能有效使用起来。 Set集合的特点 ​ Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false。 ​ ...
  • 对ArrayList集合中的6个学生对象进行去重并按照年龄从小到大的顺序排序 Set的特性是有序不重复,使用集合去重 对Set中的年龄属性进行比较 public class Demos { public static void main(String[] args) { List...
  • java中的各种集合排序set中TreeSet集合排序

    万次阅读 多人点赞 2019-05-03 15:06:01
    1.软件开发过程中集合排序是比较强大的功能,会使用集合Map、Set、List实现排序功能,知道匿名内部类Comparator很关键,搞清楚集合排序的性能开销,排序遇到的坑以及解决的方法,注意下面的例子都是JDK1.8的用法。...
  • 前面提到的几种数据类型都各有特点,但是如果想对数据进行排序却做不,想要数据能够按照某种特色进行排序,需要用到一种新类型,sorted_set。 我是T型人付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在...
  • set容器对类进行排序

    2011-11-02 18:15:29
    使用C++容器类中的set容器对类进行排序!!!
  • 对map集合按照value从大到小进行排序

    千次阅读 2017-12-08 17:25:20
     |--treemap 底层是二叉树结构,线程不同步,可以对Map中的键值可以排序  Map集合的两种取出方式(原理:将map集合转换成set,再使用迭代器) 1.传入map集合即可   public static Map ...
  • python中如何在set中添加元素?语句是什么python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric ...
  • python字符串从小到大排序

    千次阅读 2021-03-06 17:44:58
    python字符串排序问题a='AADFabddefgilmrsss' 请将该字符串a里的单词重新排序(a-z),并且重def char_cmp(a, b): #实现你的比较规则, 分太少,不值为你写这个函数 sorted(a, char_cmp)python 字符串列表中根据字符串...
  • 题目:随机生成100个小于1000的数,从大到小排序,并输出次最大值。 拿题目的时候,想的好简单,冒泡排序从大到小,取数组中第二个数,就是次最大值。回来又细想了下,如果随机生成的数中有重复值,这么做就...
  • 1、学习目标:set容器默认排序规则为从小到大,掌握如何改变排序规则 主要技术点:利用仿函数,可以改变排序set容器排序:存放自定义数据类型; 自定义数据类型:都会指定排序规则 2、了解仿函数 仿函数functor...
  • // 从小到大顺序排序 minSort (arr) { var min for (var i = 0; i &lt; arr.length; i++) { for (var j = i; j &lt; arr.length; j++) { if (arr[i].coupon.faceMoney &gt; arr[j...
  • 在学习set/multiset容器时,容器如果非自己指定(如数据类型、排序规则),默认遵循从小到大排序规则,今天以set容器为例,介绍如何对自定义数据类型进行降序排序。 毕竟,好记性不如烂笔头。 一、关于set/...
  • sort_array默认是从小到大排序的,为了实现能够大到小排序,需要做两个变换: (1)将字符串映射成数字:ROW_NUMBER() OVER(PARTITION BY user_id, cate_level1ORDER BY date desc) (2)基于数字保持大小序映射...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 925,034
精华内容 370,013
关键字:

set 从大到小排序