每日学习笔记:C++ STL算法之容器元素排序

目录

常规排序

升序排序:

sort(beg, end)

stable_sort(beg, end, op)

自定义规则排序:

sort(beg, end, op)

stable_sort(beg, end, op)

局部排序(使前段有序)

partial_sort(beg, sortEnd, end)

partial_sort(beg, sortEnd, end, op)

复制并局部排序

partial_sort_copy(srcBeg, srcEnd, destBeg, destEnd)

partial_sort_copy(srcBeg, srcEnd, destBeg, destEnd, op)

令第n个元素处在升序序列状态的正确位置上(可用于查找前N个最大值或最小值)

nth_element(beg, nth, end)

nth_element(beg, nth, end, op)

按Heap(堆)排序

heap介绍

将区间元素顺序转换为堆的顺序:

make_heap(beg, end)

make_heap(beg, end, op)

将区间最后一个元素加入原来的堆区间内,并以堆排序:

push_heap(beg, end)

push_heap(beg, end, op)

将原来堆的最高元素移到区间最后,并重新将其余元素以堆排序:

pop_heap(beg, end)

pop_heap(beg, end, op)

将区间堆顺序转换回sort()排序序列:

sort_heap(beg, end)

sort_heap(beg, end,op)


常规排序

升序排序:

sort(beg, end)

stable_sort(beg, end, op)

自定义规则排序:

sort(beg, end, op)

stable_sort(beg, end, op)

局部排序(使前段有序)

partial_sort(beg, sortEnd, end)

partial_sort(beg, sortEnd, end, op)

复制并局部排序

partial_sort_copy(srcBeg, srcEnd, destBeg, destEnd)

partial_sort_copy(srcBeg, srcEnd, destBeg, destEnd, op)

令第n个元素处在升序序列状态的正确位置上(可用于查找前N个最大值或最小值)

nth_element(beg, nth, end)

nth_element(beg, nth, end, op)

按Heap(堆)排序

heap介绍

只适用于支持随机访问迭代器的容器

例如:容器内容如下:

下图标出容器下标如下:

将区间元素顺序转换为堆的顺序:

make_heap(beg, end)

make_heap(beg, end, op)

将区间最后一个元素加入原来的堆区间内,并以堆排序:

push_heap(beg, end)

push_heap(beg, end, op)

将原来堆的最高元素移到区间最后,并重新将其余元素以堆排序:

pop_heap(beg, end)

pop_heap(beg, end, op)

将区间堆顺序转换回sort()排序序列:

sort_heap(beg, end)

sort_heap(beg, end,op)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/561735.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】日期类Date(详解)

🔥个人主页:Forcible Bug Maker 🔥专栏:C 目录 前言 日期类 日期类实现地图 获取某年某月的天数:GetMonthDay 检查日期合法,构造函数,拷贝构造函数,赋值运算符重载及析构函数…

2. uni-app的一些介绍

前言 就目前的前端生态而言,跨端开发基本算是每一个前端开发者必备的技能点之一了,而在Vue这个技术栈里uni-app在跨端是独一档的,不信的话可以翻翻Boss之类的招聘网站.... 概述 阅读时间:约5~10分钟; 本文重点&…

linux的编译器vim

vim简介 之前我们在win下写代码,都是下载一些编译器VS/eclipse等 他们不仅可以写代码,还可以实现代码的运行调试,开发。这样的编译器叫做集成编译器 而linux中虽然也有这样的编译器,但不管是从下载,还是使用中都会显…

谷歌地球引擎Google Earth Engine下载数字高程模型DEM数据的方法

本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,批量下载指定时间与空间范围内的数字高程模型(DEM)数据的方法。 本文是谷歌地球引擎(Google Earth Engine,GEE)系列…

UltraScale+的40G/50G Ethernet Subsystem IP核使用

文章目录 前言一、设计框图二、模块说明三、上板3.1、发送端3.1、接收端 四、总结 前言 上文介绍了10G/25G Ethernet Subsystem IP核使用,本文将在此基础上介绍40G/50G Ethernet Subsystem IP核的使用,总体区别不大。 一、设计框图 由于40G以太网需要…

嵌入式 - i.MX93 Evaluation Kit介绍

MCIMX93-EVK (i.MX 93 APPLICATIONS PROCESSOR) 1, Out of the Box [ 开箱 ] Top view i.MX 93 11x11 EVK board Back view: Board kit contents: (board, power supply, cable, software, Documentation) MCIMX93-EVK board assembled with two separate boards, MCIMX93-SOM…

《MATLAB科研绘图与学术图表绘制从入门到精通》示例:绘制伊甸火山3D网格曲面图

11.4.2小节我们使用3D曲面图可视化分析伊甸火山数据,本小节我们采用3D网格曲面图可视化分析伊甸火山数据,以展示其地形,具体示例代码如下。 购书地址:https://item.jd.com/14102657.html

RabbitMQ项目实战(一)

文章目录 RabbitMQ项目实战选择客户端基础实战 前情提要:我们了解了消息队列,RabbitMQ的入门,交换机,以及核心特性等知识,现在终于来到了激动人心的项目实战环节!本小节主要介绍通过Spring Boot RabbitMQ S…

HackMyVM-Hommie

目录 信息收集 arp nmap WEB web信息收集 dirsearch ftp tftp ssh连接 提权 系统信息收集 ssh提权 信息收集 arp ┌──(root㉿0x00)-[~/HackMyVM] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 08:00:27:77:ed:84, IPv4: 192.168.9.126 Starting arp-…

PhpStorm2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 PhpStorm是由JetBrains公司开发的一款商业的PHP集成开发环境(IDE),深受全球开发人员的喜爱。它旨在提高开发效率,通过深刻理解用户的编码习惯,提供智能代码补全、快速导…

14.哀家要长脑子了!

目录 1.598. 区间加法 II - 力扣(LeetCode) 2.419. 甲板上的战舰 - 力扣(LeetCode) 3.54. 螺旋矩阵 - 力扣(LeetCode) 4. 498. 对角线遍历 - 力扣(LeetCode) 5. 566. 重塑矩阵 - …

希亦、添可、追觅洗地机哪一款更好用?口碑洗地机型号多维度测试

近年来,随着“懒人经济”的兴起,商家们纷纷推出各种智能化、便捷化、高效化的家电产品,以提升人们的生活品质。在这些家电产品中,家居清洁领域的小家电发展尤为迅速,产品不断更新换代。在众多清洁家电产品中&#xff0…

C++ | Leetcode C++题解之第41题缺失的第一个正数

题目&#xff1a; 题解&#xff1a; class Solution { public:int firstMissingPositive(vector<int>& nums) {int n nums.size();for (int i 0; i < n; i) {while (nums[i] > 0 && nums[i] < n && nums[nums[i] - 1] ! nums[i]) {swap(…

[svelte]属性和逻辑块

属性 / Default values • Svelte 教程 | Svelte 中文网 属性 Declaring props 到目前为止&#xff0c;我们只处理了内部状态——也就是说&#xff0c;这些值只能在给定的组件中访问。 在任何实际应用程序中&#xff0c;都需要将数据从一个组件向下传递到其子组件。为此&…

Java测试编程题

题目1 1.创建5个线程对象 线程名设置为&#xff08;Thread01&#xff0c;Thread02&#xff0c;Thread03&#xff0c;Thread04&#xff0c;Thread05&#xff09;使用 代码实现5个线程有序的循环打印&#xff0c;效果如下&#xff1a; Thread01正在打印1 Thread02正在打印2 Threa…

OpenHarmony多媒体-mp3agic

简介 mp3agic 用于读取 mp3 文件和读取/操作 ID3 标签&#xff08;ID3v1 和 ID3v2.2 到 ID3v2.4&#xff09;,协助开发者处理繁琐的文件操作相关&#xff0c;多用于操作文件场景的业务应用。 效果展示&#xff1a; 下载安装 ohpm install ohos/mp3agicOpenHarmony ohpm环境配…

【Day 4】Maven + Spring入门 + HTTP 协议

开始学后端&#xff01; 1 Maven Maven 是一款用于管理和构建 Java 项目的工具&#xff0c;基于项目对象模型(POM)的概念&#xff0c;通过一小段描述信息来管理项目的构建。 作用&#xff1a; 依赖管理 方便快捷的管理项目依赖的资源(jar 包)&#xff0c;避免版本冲突问题 …

接雨水 , 给定二维图,能容多少水

42. 接雨水 - 力扣&#xff08;LeetCode&#xff09; 看着就是非常常规的题目&#xff0c;所以非常有必要掌握。 最少也把O&#xff08;n^2&#xff09;的方法写出来吧。力扣官方题解的三种方法O&#xff08;n&#xff09;都挺好&#xff0c;不过可能有点难读&#xff0c;在此…

简单的LRU本地缓存实现-Java版本

文章目录 什么是缓存缓存的种类缓存的关键特性缓存的优势与挑战优势&#xff1a;挑战&#xff1a; 缓存的应用场景什么是LRUCacheLRU 缓存的工作原理核心操作为何选择 LRU使用场景 一个简单的LRU缓存实现相关资料基础资料 什么是缓存 缓存&#xff08;Cache&#xff09;是一种…

机器人课程教师面对的困境有哪些(补充)

唯有自救&#xff0c;唯有自强&#xff0c;方能有希望。 前序 距离这一篇博文发表已经快2年了…… 机器人课程教师面对的困境有哪些 至少从5年前就已经有需求减少&#xff0c;供给过剩的现象出现了。 为何在2019年之后应用型本科开设ROS课程优势消逝 案例 博客分享过工作…