#include<bits/stdc++.h>
using namespace std;
struct cmp
{
bool operator ()(int a, int b) //重载小于
{ return a > b; }
};
set<int,cmp>s1; //递增
set<int>s2; //递减
struct myint
{
int val;
myint(int v):val(v){}
friend bool operator <(myint a, myint b) //重载小于
{ return a.val > b.val; }
};
set<myint>s3; //递增
int main ()
{
s1.insert(5);
s1.insert(6);
s1.insert(7);
s1.insert(2);
set<int,cmp>::iterator it;
for(it = s1.begin(); it != s1.end(); it++) //递增
printf("%d ", *it);
s2.insert(5);putchar(10);
s2.insert(6);
s2.insert(7);
s2.insert(2);
set<int>::iterator itt;
for(itt = s2.begin(); itt != s2.end(); itt++) //递减
printf("%d ", *itt);
s3.insert(myint(5));putchar(10);
s3.insert(myint(6));
s3.insert(myint(7));
s3.insert(myint(2));
set<myint>::iterator ittt;
for(ittt = s3.begin(); ittt != s3.end(); ittt++) //递增
printf("%d ", (*ittt).val);
}

set默认从小到大排序,只要重载<就行了

priority_queue默认从大到小排序,也只要重载<

set/priority_queue的运算符重载的更多相关文章

  1. priority_queue的运算符重载问题

    对于需要比较的函数或STL(最常见的为sort,priority_queue) 要对自创的结构进行运算符重载(sort可以写cmp,一样的效果) 1.只能对小于号重载 cmp函数与其起到相同的作用 2 ...

  2. C++关于sort和priority_queue的运算符重载

    C++中的sort函数默认是将元素升序排列的,而priority_queue默认是将元素降序排列的(默认实现的是大顶堆). 自定义运算符用的比较多,以下2种对sort和priority_queue运算 ...

  3. C++ 运算符重载时,将运算符两边对象交换问题.

    在C++进行运算符重载时, 一般来讲,运算符两边的对象的顺序是不能交换的. 比如下面的例子: #include <iostream> using namespace std; class ...

  4. C#高级编程笔记2016年10月12日 运算符重载

    1.运算符重载:运算符重重载的关键是在对象上不能总是只调用方法或属性,有时还需要做一些其他工作,例如,对数值进行相加.相乘或逻辑操作等.例如,语句if(a==b).对于类,这个语句在默认状态下会比较引 ...

  5. C++运算符重载

    C++运算符重载 基本知识 重载的运算符是具有特殊名字的函数,他们的名字由关键字operator和其后要定义的运算符号共同组成. 运算符可以重载为成员函数和非成员函数.当一个重载的运算符是成员函数时, ...

  6. 标准C++之运算符重载和虚表指针

    1 -> *运算符重载 //autoptr.cpp     #include<iostream> #include<string> using namespace std ...

  7. python运算符重载

    python运算符重载就是在解释器使用对象内置操作前,拦截该操作,使用自己写的重载方法. 重载方法:__init__为构造函数,__sub__为减法表达式 class Number: def __in ...

  8. PoEduo - C++阶段班【Po学校】-Lesson03-5_运算符重载- 第7天

    PoEduo - Lesson03-5_运算符重载- 第7天 复习前面的知识点 空类会自动生成哪些默认函数 6个默认函数    1  构造  2  析构   3  赋值  4 拷贝构造  5 oper ...

  9. 不可或缺 Windows Native (24) - C++: 运算符重载, 自定义类型转换

    [源码下载] 不可或缺 Windows Native (24) - C++: 运算符重载, 自定义类型转换 作者:webabcd 介绍不可或缺 Windows Native 之 C++ 运算符重载 自 ...

随机推荐

  1. 微信小程序访问豆瓣电影api400错误解决方法

    最近在跟着demo学习微信小程序,却卡在了第一步请求豆瓣电影api上,折腾了很久,代码如下: wx.request({ url : "https://api.douban.com/v2/mo ...

  2. Python基础案例1如何实现对应位置上的元素相乘/相加/相减

    如何通过a b得到c 本文以“乘”引入,其他运算,类似.案例逻辑如下: a = [[1, 2, 3], [4, 5, 6], [1, 1, 1]]b = [[1, 1, 2], [1, 3, 2], ...

  3. python中的for循环加强

    #先执行外面for循环,再执行里面for循环,接着执行外面for循环,程序结束 #打印结果为1,10,2 flag=False for i in range(1,10): print(i) if fl ...

  4. SPI通讯(Serial Peripheral interface)

    1. SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线:SCLK,MISO,MOSI,CS 2. SPI结构简图: 可以看出,SPI主从设备两端都有一个位移寄存器,数据在位 ...

  5. idea 中激活 JRebel

    JRebel介绍: JRebel是一款JVM插件,它使得Java代码修改后不用重启系统,立即生效.IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,修改才能 ...

  6. vue 项目之后生成的 dist 文件该怎么在本地启动运行

    简单高效 npm i -g servecd distserve

  7. c#Queue队列的使用

    消息队列 队列(System.Collections.Queue)代表了一个先进先出的对象集合.当您需要对各项进行先进先出的访问时,则使用队列.当您在列表中添加一项,称为入队,当您从列表中移除一项时, ...

  8. ubuntu安装mysql数据库方法

    ubuntu基于linux的免费开源桌面PC操作系统,十分契合英特尔的超极本定位,支持x86.64位和ppc架构.一个比较流行的Linux操作系统,不仅简单易用,而且和Windows相容性非常好.那么 ...

  9. 笔谈FFmpeg(一)

    现在的工作是播放器库的开发,可不是调用iOS系统自带的播放器框架进行一些简单的功能和界面定制,这些没什么含量.涉及iOS开发有3个年头了,现在的工作算是有点含金量了.涉及播放器的开发,FFmpeg的架 ...

  10. MySQL Lock--MySQL加锁学习1

    准备测试数据: ## 开启InnoDB Monitor SET GLOBAL innodb_status_output=ON; SET GLOBAL innodb_status_output_lock ...