C++ 记住proirity_queue, sort函数中cmp的理解

本文探讨了C++中sort和priority_queue的自定义比较函数使用,强调了在sort中需要传入仿函数并举例说明。对于priority_queue,大于号用于创建小根堆,小于号用于创建大根堆。通过实例分析,帮助理解两者中比较函数的差异。
摘要由CSDN通过智能技术生成

自定义的sort, stable_sort,map,set,priority_queue等都需要传入自定义的比较函数

不同的是,sort,statble_sort可以需要传入比较函数或仿函数

map,set,priority_queue需要传入仿函数

 

在定义自己的比较时,常常容易搞混

对于比较函数,一句话 为true的放在前面

对于priority_queue,大于为小根堆,小于为大根堆

1、sort中比较函数

此外sort中也可以穿仿函数,比方有个仿函数叫 struct cmp {};,但必须传入的是cmp(), 不能直接直接传入cmp

#include <iostream>
#include <queue>
#include <algorithm>

using namespace std;


bool cmp(int a, int b)  //降序排序
{
    return a > b; //大于的为true,放前面,因此是由大到小排序
}

bool cmp1(pair<int, int> p1, pair<int, int> p2)  //主键降序,主键相同则升序
{
    if (p1.first != p2.first)
        return p1.first > p2.first;
    else
        return p1.second < p2.second;
}

int main()
{
    vector<int> nums{2, 1, 3, 4, 2, 7};
    vector<pair<int, int>> nums2{
  {1
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IRI模型是一种用于表示和处理国际化资源标识符(IRI)的Python库。IRI是一种更通用的URL(统一资源定位符)形式,可以包含非ASCII字符,用于在国际化环境标识网络资源。Python作为一种功能强大的编程语言,提供了许多用于处理和操作字符串的库,其包括锚和URL处理。IRI模型是其一个库,专门用于处理IRI。它提供了一些实用的功能,例如解析IRI,构建IRI,处理特殊字符以及处理IRI的各个部分等。 使用IRI模型的Python代码可以方便地解析IRI,提取其的各个部分,例如主机名、路径、查询参数等。它还可以根据需要构建IRI,将各个部分组合成一个有效的IRI字符串。IRI模型还提供了字符编码和解码的功能,用于处理特殊字符和编码问题。 使用IRI模型的Python代码可以是: ```python from irimodel import IRI # 解析IRI iri = IRI("https://www.example.com/path?param=value") print(iri.host) # 输出: www.example.com print(iri.path) # 输出: /path print(iri.query) # 输出: param=value # 构建IRI new_iri = IRI(scheme="https", host="www.example.com", path="/new_path") print(new_iri.get_iriref()) # 输出: https://www.example.com/new_path # 编码和解码 encoded_path = IRI("https://www.example.com/my path").get_encoded_path() print(encoded_path) # 输出: /my%20path decoded_path = IRI("https://www.example.com/my%20path").get_decoded_path() print(decoded_path) # 输出: /my path ``` 总之,IRI模型是一个有用的Python库,它使我们能够方便地处理国际化资源标识符,并进行解析、构建、编码和解码等操作。无论是在Web开发、网络爬虫还是其他需要处理URL的场景,IRI模型都可以提供帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值