博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++ set和pair 的结合使用
阅读量:6703 次
发布时间:2019-06-25

本文共 617 字,大约阅读时间需要 2 分钟。

当我们使用set集合时,当set集合是由两个简单变量组成时,我们可以自己定义结构体,自己定义重载小于号,就像如下所示:

  1. struct ju  
  2. {  
  3.     int x,y;  
  4.     bool operator <(const ju &a)const //排序并且去重复  
  5.     {  
  6.          if(a.x != x) 
  7.                return a.x >x;
  8.          return a.y > y;
  9.     }  
  10. }tt;  

但是这样需要自己定义结构体,有时在结构中需要定义构造函数,如果只有两个变量,我们可以通过pair类型来实现,这样显得简洁。

struct RatioComp {

    bool operator() (const pair<int, int>& A, const pair<int, int>& B) {

        if (A.first * B.second < A.second * B.first) {

            return true;

        } else if (A.first * B.second == A.second * B.first) {

            return A.first < B.first;

        } else {

            return false;

        }

    }

};

set<pair<int,int>,RatioComp>S;

//RatioComp结构体中定义的构造函数就是set集合排序规则。

 

 

转载于:https://www.cnblogs.com/ChenAlong/p/4651835.html

你可能感兴趣的文章
【技术人快报】Linux基金会:未来6个月需要招聘更多开源人才+Facebook将在欧洲开数字培训中...
查看>>
我的友情链接
查看>>
Spray.io搭建Rest服务
查看>>
探索C++对象模型(二)
查看>>
内核模式和用户模式
查看>>
SSH 整合框架(自整理)
查看>>
学习ARM嵌入式linux的一些建议
查看>>
java.lang.NoClassDefFoundError解决方案
查看>>
textView限制字数(超简单,不走弯路)(解决联想输入及iOS7崩溃等问题)
查看>>
shell实例
查看>>
我的友情链接
查看>>
java中四种进制的转换
查看>>
git多个远程仓库
查看>>
Linux之命令
查看>>
Android 6.0 特性
查看>>
shell 脚本作业
查看>>
程序员老司机都要错的 Python 陷阱与缺陷列表
查看>>
《netty入门与实战》笔记-06:心跳与空闲检测
查看>>
使用javascript开发的视差滚动效果的云彩 极客标签 - 做最棒的极客知识分享平台...
查看>>
SSM整合框架
查看>>