C++ sort函数自定义排序规则

2023-11-10

在使用vector容器时经常要进行排序,使用排序函数sort非常方便,但是之前都是简单调用sort(v.begin(), v.end());没有自定义排序规则使用sort函数的额第三个参数,下面对sort总一个简单总结。

头文件:#include <algorithm>

第三个参数compare,是个自定义的比较函数的指针,名字可以随便命名;原型如下:

 bool cmp const Type1 &aconst Type2  b ;

简单说来就是:

比较a和b,如果是想升序,那么就定义当a<b的时候返回true;

                  如果是想降序,那么就定义当a>b的时候返回true;

代码举例

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;

bool cmp(const int& a, const int& b)
{
	return a > b; //从大到小排序
}

int main()
{
	int a[10] = {2, 3, 30, 305, 32, 334, 40, 47, 5, 1};
	vector<int> nums(a, a + 10);

	sort(nums.begin(), nums.end(), cmp);

	for(auto x : nums)
		cout << x;
	cout << endl;

	system("pause");
	return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ sort函数自定义排序规则 的相关文章

  • 金特 + XNA (C#)

    是否可以使用jint http jint codeplex com操作使用 XNA C 创建的 3D 环境 并向该环境添加功能 再次使用 jint 作为 Jint 的贡献者 我会推荐你Jint http jint codeplex com
  • 如何使用 ASP.NET MVC 编辑多选列表?

    我想编辑一个如下所示的对象 我希望用 UsersGrossList 中的一个或多个用户填充 UsersSelectedList 使用 mvc 中的标准编辑视图 我只得到映射的字符串和布尔值 下面未显示 我在 google 上找到的许多示例都
  • 是否可以从 C++ 应用程序调用 C# 应用程序?

    我是一名编程学生 现在我已经上了两门 C 课程 这个学期我将参加我的第一门 C 课程 出于好奇 是否可以从 C 应用程序调用 C 应用程序 如果是的话 是否还可以检查运行该程序的计算机是否具有 NET框架 我只是很好奇 我想如果可能的话 这
  • 无法将 std::min 传递给函数,std::min 的副本有效

    Passing std min函数无法编译 我复制了 libcpp 声明std min进入我的源文件并且它可以工作 std 版本有什么问题 clang 和 gcc 也会发生同样的情况 在 Godbolt 上测试 https godbolt
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • 异常堆栈跟踪不显示抛出异常的位置

    通常 当我抛出异常 捕获它并打印出堆栈跟踪时 我会看到抛出异常的调用 导致该异常的调用 导致该异常的调用that 依此类推回到整个程序的根 现在它只向我显示异常所在的调用caught 而不是它所在的地方thrown 我不明白是什么改变导致了
  • 如果 JSON.NET 中的值为 null 或空格,则防止序列化

    我有一个对象需要以这样的方式序列化 即 null 和 空白 空或只是空格 值都不会序列化 我不控制对象本身 因此无法设置属性 但我知道所有属性都是字符串 环境NullValueHandling显然 忽略 只能让我找到解决方案的一部分 它 似
  • C# 处理标准输入

    我目前正在尝试通过命令行断开与网络文件夹的连接 并使用以下代码 System Diagnostics Process process2 new System Diagnostics Process System Diagnostics Pr
  • 全局使用和 .NET Standard 2.0

    我最近意识到我可以使用 C 10 功能文件范围的命名空间在 NET Standard 2 0 项目中也可以通过设置
  • while循环中的变量初始化

    我有一个可以分块读取文件的函数 public static DataObject ReadNextFile 数据对象看起来像这样 public DataObject public string Category get set And ot
  • 有什么方法可以重载 C# 中的扩展方法吗?

    我有以下模型模式 public abstract class PARENTCLASS public class CHILD A CLASS PARENTCLASS public static class EXTENSION public s
  • 如何使用 CSI.exe 脚本参数

    当你运行csi exe 安装了 Visual Studio 2015 update 2 您将得到以下语法 Microsoft R Visual C Interactive Compiler version 1 2 0 51106 Copyr
  • EnumDisplayDevices 与 WMI Win32_DesktopMonitor,如何检测活动监视器?

    对于我当前的 C 项目 我需要为在大量计算机上连接并处于活动状态的每个监视器检测一个唯一的字符串 研究指出了两种选择 使用 WMI 并查询 Win32 DesktopMonitor 以获取所有活动监视器 使用 PNPDeviceID 来唯一
  • 使用 xslt 将 xml 转换为 xsl-fo 时动态创建超链接?

    我想使用 xsl 文件在 PDF 报告中创建标题 如果源文件包含超链接 则应将其呈现为超链接 否则呈现为纯文本 例如 我的 xml 如下所示 a href http google com target blank This is the h
  • 从 NumPy 数组到 Mat 的 C++ 转换 (OpenCV)

    我正在围绕 ArUco 增强现实库 基于 OpenCV 编写一个薄包装器 我试图构建的界面非常简单 Python 将图像传递给 C 代码 C 代码检测标记并将其位置和其他信息作为字典元组返回给 Python 但是 我不知道如何在 Pytho
  • Xamarin.Forms UWP 项目中标题栏和选项卡之间令人恼火的空白

    我几乎是新手Xamarin Forms我正在开发一个相当简单的跨平台应用程序 该应用程序在 Android 中显示得足够好 但在 UWP 中却出现了一个愚蠢的空白 该项目由一个 TabbedPage 组成 其中包含 4 个 Navigati
  • 如何将 int 作为“void *”传递给线程启动函数?

    我最初有一个用于斐波那契变量数组的全局变量 但发现这是不允许的 我需要进行基本的多线程处理并处理竞争条件 但我无法在 pthread 创建中将 int 作为 void 参数提供 我尝试过使用常量指针 但没有成功 由于某些奇怪的原因 void
  • “必须声明标量变量”错误[重复]

    这个问题在这里已经有答案了 必须声明标量变量 Id SqlConnection con new SqlConnection connectionstring con Open SqlCommand cmd new SqlCommand cm
  • 如何提高环复杂度?

    对于具有大量决策语句 包括 if while for 语句 的方法 循环复杂度会很高 那么我们该如何改进呢 我正在处理一个大项目 我应该减少 CC gt 10 的方法的 CC 并且有很多方法都存在这个问题 下面我将列出一些例如我遇到的问题的
  • C++ Boost ASIO 简单的周期性定时器?

    我想要一个非常简单的周期性计时器每 50 毫秒调用我的代码 我可以创建一个始终休眠 50 毫秒的线程 但这很痛苦 我可以开始研究用于制作计时器的 Linux API 但它不可移植 I d like使用升压 我只是不确定这是否可能 boost

随机推荐

  • 实现antd中Form、Form.Item组件

    实现antd中Form Form Item组件 初始化项目 使用create react app初始化项目后创建MyRcFieldForm文件 代码如下 import React Component useEffect from react
  • SWOT分析模型

    SWOT分析模型 出自 MBA智库百科 http wiki mbalib com SWOT分析模型 SWOT Analysis SWOT分析法 也称TOWS分析法 道斯矩阵 即态势分析法 20世纪80年代初由美国旧金山大学的管理学教授韦里克
  • Flask+Nginx+Gunicorn部署应用实现

    实际的开发中 不能使用flask搭建的轻型服务器 无法满足性能要求 在生产环境中可以使用Gunicorn做容器 部署flask程序 Gunicorn 是Python WSGI HTTP 服务器 兼容各种web框架不需要配置 安装后直接使用命
  • Java面向对象编程

    在双向循环链表中 在p指针所指的节点后插入一个指针q所指向的新节点 修改指针的操作是 A p gt next q q gt prior p p gt next gt prior q q gt next q B p gt next q p g
  • tensorflow使用显卡gpu进行训练详细教程

    GPU之nvidia smi命令详解查看显卡的信息 cmd nvidia smi GPU之nvidia smi命令详解 简书 编辑 GPU 本机中的GPU编号 有多块显卡的时候 从0开始编号 图上GPU的编号是 0 Fan 风扇转速 0 1
  • Kotlin柯里化——函数调用链

    一 首先看一个小例子 做个铺垫 package net println kotlin chapter5 currying author wangdong description 柯里化 函数调用链 定义一个Hello的方法 传入三个参数 返
  • Android JNI(一):JNI基础概念

    本文讲述 NDK和JNI是什么 JNI的原理 JNI开发流程的步骤 认识JNI相关的代码语法 名称概念 什么是NDK NDK 其中NDK的全拼是 Native Develop Kit Android NDK 就是一套工具集合 允许你使用C
  • 蓝桥杯python组如何准备

    在蓝桥杯的程序设计比赛里新增加了python组 这是一个全新的组别 目前蓝桥杯官网已经开通了python的练习平台 链接http dasai lanqiao cn 如何准备2020年蓝桥杯python程序设计呢 我分为四个部分讲解 了解这四
  • AI无敌?人类的反击静悄悄。

    前几年 alphago横扫围棋棋坛 人类棋手不得不接受现实 那么 按照AI的进步速度 我们当时也提过火车站台的比喻 呼啸而过 望尘莫及 从此 人类棋手输给AI不再是新闻 而且随着相关论文的发布和国内外各个技术团队的跟进 超越顶尖人类棋手的围
  • Python_单下划线和双下划线

    属性 x 公有变量 x 私有变量 在py中不能完全做到私有 只能说 伪私有 只是一种良好的书写习惯 不希望被其他类或者子类访问 x 后置下划线 避免与py中的关键字冲突 方法 fun 私有方法 无法在外部直接访问 只能允许本身访问 子类也不
  • 目的:ubuntu配置使用opengl - 初探-创建一个空窗口

    目的 ubuntu配置使用openGL 初探 创建一个空窗口 环境 系统 Ubuntu18 04 环境 g 步骤 Ubuntu下使用openGL 搭建配置环境并测试窗口 1 openGL库 需要单独安装 由于本机是vmware虚拟机Ubun
  • 关于CittyEngine处于加载界面死机的解决方法

    1 CityEngine License无法打开 与已安装的ArcGISAdministrator冲突 在安装后破解是打开CityEngine License警告 试图执行不支持的操作 提示 CityEngine可以独立安装 并不一定要安装
  • 使用vector对数据进行排序(动态排序)

    排序思路 头函数 algorithm 中有一个函数是 upper bound start end value 它可以返回区间 start end 中第一个大于等于 value 的值的位置 再加上 vector 中自带的插入函数 insert
  • 电脑安装了lattice diamond后,再安装lattice radiant,若出现lattice radiant license checkout failed如何解决?

    我电脑安装了lattice diamond 再安装lattice radiant 设置完环境变量后 发现lattice radiant仍然会报错 如下图 检查环境变量和license都并没有什么错误 但是就是一直会出现以下情况 后面如何解决
  • UML 类图

    1 概述 目录 1 概述 1 1 UML概念 1 2 类图的概念 2 类的表示方式 2 1 普通类 2 2 抽象类 2 3 接口 3 类与类关系的表示 3 1 关联关系 Association 3 1 1 单向关联 3 1 2 双向关联 3
  • 【小程序】如何实现从底部弹出对话框

    前面两篇两篇文章介绍了如何在小程序中实现上下滑动效果以及如何用 Canvas 绘制一张图片 这一篇作为前两篇的延续 介绍如何从底部弹出一个对话框 相比而言 底部弹出对话框的功能比较通用 因此非常适合定义成组件 component 先来看一下
  • 【学习记录贴】Vue+Element-UI富文本编辑框及插入图片

    本贴会涉及以下几个技术点 Vue Element UI实现富文本编辑框 以及文本编辑框中事件拦截 插入图片 Element UI限制上传图片后 隐藏上传按钮 官网上是没有这个方法的 可以通过上传到指定张数后隐藏上传按钮来实现 form表单验
  • MyBatis-Plus删除操作知识点总结

    系列文章目录 Mybatis Plus知识点 MyBatis MyBatis Plus的基础运用 心态还需努力呀的博客 CSDN博客 Mybatis Plus SpringBoot结合运用 心态还需努力呀的博客 CSDN博客MyBaits
  • VScode自由切换输出结果窗口,输出到“终端”和“调试控制台”

    Author xiaozhu sai 软件 Visual Studio Code 点击右边的齿轮按钮 打开launch json文件 注意 console 属性即可 具体见一下代码 使用 IntelliSense 了解相关属性 悬停以查看现
  • C++ sort函数自定义排序规则

    在使用vector容器时经常要进行排序 使用排序函数sort非常方便 但是之前都是简单调用sort v begin v end 没有自定义排序规则使用sort函数的额第三个参数 下面对sort总一个简单总结 头文件 include