<algorithm> 头文件

news2024/11/26 5:51:56

头文件是 C++ 标准库中的一个头文件,提供了许多常用的算法函数。除了 erase 之外, 头文件还包含了以下一些重要的函数:

1、排序算法:

sort:对容器进行排序。

#include <iostream>
#include <algorithm>
# include <vector>

using namespace std;

int main() {
	vector<int> nums = {4, 2, 1, 3, 5};
	sort(nums.begin(), nums.end());   //默认升序 
	
	for (int num : nums) {
		cout<<num<<" ";
		} 
		return 0;
} 

降序:
在这里插入图片描述
在这里插入图片描述

#include <iostream>
#include <algorithm>
# include <vector>

using namespace std;

int main() {
	vector<int> nums = {4, 2, 1, 3, 5};
	sort(nums.begin(), nums.end(), greater<int>());   //降序
	
	for (int num : nums) {
		cout<<num<<" ";
		} 
		return 0;
} 

定义一个比较函数:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include <iostream>
#include <algorithm>
# include <vector>

using namespace std;

int compare (int a, int b) {
	return a > b;    //降序 
}

int main() {
	vector<int> nums = {4, 2, 1, 3, 5};
	sort(nums.begin(), nums.end(), compare);  
	
	for (int num : nums) {
		cout<<num<<" ";
		} 
		return 0;
} 

降序匿名函数写法:

#include <iostream>
#include <algorithm>
# include <vector>

using namespace std;

//int compare (int a, int b) {
//	return a > b;    //降序 
//}

int main() {
	vector<int> nums = {4, 2, 1, 3, 5};
	sort(nums.begin(), nums.end(), [](int a, int b){
		return a>b;
	});  
	
	
	for (int num : nums) {
		cout<<num<<" ";
		} 
		return 0;
} 

stable_sort:对容器进行稳定排序。
partial_sort:对容器的部分元素进行排序。

2、查找算法:

find:在容器中查找指定值的第一个出现位置。
find_if:在容器中根据给定的条件查找元素的第一个出现位置。
binary_search:在已排序的容器中执行二分查找。

3、数值算法:

accumulate:计算容器中元素的累加和。
inner_product:计算两个容器间的内积。
transform:将一个容器的值转换为另一个容器。

4、常用操作算法:

copy:将一个容器的元素复制到另一个容器。
fill:将指定值赋给容器中的所有元素。
reverse:将容器中的元素逆置。

5、删除和修改算法:

remove:从容器中删除指定值的所有元素。
replace:将容器中的指定值替换为新值。
unique:从容器中移除相邻重复的元素。

6、合并和修改算法:

merge:将两个已排序的容器合并为一个已排序的容器。
sort、unique 组合:对容器进行排序并移除重复的元素。
在这里插入图片描述

在这里插入图片描述

这些只是 头文件中的一部分函数,还有其他更多的功能丰富且实用的算法函数可供使用。它们在处理容器和集合时非常有用,并通过简洁和高效的方式提供了常见操作功能。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Android的旅游管理系统 微信小程序

随着网络科技的发展&#xff0c;移动智能终端逐渐走进人们的视线&#xff0c;相关应用越来越广泛&#xff0c;并在人们的日常生活中扮演着越来越重要的角色。因此&#xff0c;关键应用程序的开发成为影响移动智能终端普及的重要因素&#xff0c;设计并开发实用、方便的应用程序…

百度文心一率先言向全社会开放 应用商店搜“文心一言”可直接下载

8月31日&#xff0c;文心一言率先向全社会全面开放。广大用户可以在应用商店下载“文心一言APP”或登陆“文心一言官网”&#xff08;https://yiyan.baidu.com&#xff09; 体验。同时&#xff0c;企业用户可以直接登录百度智能云千帆大模型平台官网&#xff0c;调用文心一言能…

IntelliJ IDEA中代码提示功能不见了

IntelliJ IDEA中代码提示功能不见了&#xff1f;试试这几个方法&#xff01; 在我们敲代码的时候&#xff0c;环境中的代码提示功能非常强大且方便。但是这突如其来的问题纠结我两天&#xff0c;不给提示&#xff0c;不给引包&#xff0c;连个错他妹的也不给报。 第一种情况&…

Texlive2023与Texstudio2023卸载与安装(详细全程)

早在两年前安装了texlive2020&#xff0c;最近重新使用总是报错&#xff0c;好像是因为版本过低。我就找了个时间更新一下texlive版本&#xff0c;全程如下。 1、卸载texlive老版本 1&#xff09;找到texlive目录&#xff0c;比如我的是D:\texlive\2022\tlpkg\installer&…

[linux实战] 华为云耀云服务器L实例 Java、node环境配置

系列文章目录 第一章 [linux实战] 华为云耀云服务器L实例 Java、node环境配置 文章目录 系列文章目录前言一、任务拆解二、修改密码三、配置安全规则四、远程登录并更新apt五、安装、配置JDK环境5.1、安装openjdk,选择8版本5.2、检查jdk配置 六、安装、配置git6.1、安装git6.2…

一些git心得:建仓库的最好方式是克隆;每个仓库的设置是比较独立的

背景&#xff1a;最近&#xff0c;我在gitee上新建了一个仓库&#xff0c;然后克隆下来后&#xff0c;发现远程配置竟然自动都配好了。于是&#xff0c;在git的使用上有一了点点新的体会。 一、每个仓库是互相独立的&#xff0c;包括一些设置。 比如上面是两个仓库&#xff0c…

【App出海成功案例】 | NetMarvel 帮助广告主ARPU增长45%,ECPM增长50%,付费率涨幅30%

中国App何以扬帆出海&#xff1f; 出海热发展到今天&#xff0c;中国App席卷西方世界的神话被一一打造&#xff0c;手游/非游双面开花&#xff0c;成功案例作为赛道代表&#xff0c;也成为众多出海广告主一一效仿的风向标。 它们在用户增长、变现收益上的打法是怎样的&#x…

Unity 之 参数类型之值类型参数的用法

文章目录 基本数据类型结构体结构体的进一步补充 总结&#xff1a; 当谈论值类型参数时&#xff0c;我们可以从基本数据类型和结构体两个方面详细解释。值类型参数指的是以值的形式传递给函数或方法的数据&#xff0c;而不是引用。 基本数据类型 基本数据类型的值类型参数&…

Spring Cloud 快速入门基本介绍

&#x1f600;前言 本篇博文是关于Spring Cloud 基本介绍&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动力&#x…

3个微信恢复聊天记录的方法,简单易懂

朋友们&#xff0c;我要被自己气死了。手欠删除了微信上的所有聊天对话框&#xff0c;我发誓我真的不知道这样做会清空聊天记录&#xff0c;有什么办法能恢复我的聊天记录吗&#xff1f; 是不是还有很多小伙伴都不知道微信这个令人害怕的操作&#xff1a;删除聊天对话框删除聊天…

MySql刷题知识汇总

1.CHAR_LENGTH &#xff1a; 求varchar类型的长度。

TCP之三次握手四次挥手

在前面的文章中我们了解到http是基于TCP/IP协议的&#xff0c;这篇文章我们来了解一下TCP/IP。 一、TCP与UDP 1、UDP 基于非连接。类似于写信&#xff0c;不能保证对方能不能接收到&#xff0c;接收到的内容是否完整&#xff0c;顺序是否正确。 优缺点&#xff1a;性能损耗小…

【FlowDroid】一、处理流程学习

FlowDroid 一、处理流程学习 下载配置源码概况代码逻辑分析analyzeAPKFilerunInfoflowprocessEntryPointcalculateCallbacks(sourcesAndSinks)再次回到processEntryPoint 自己做一些笔记 下载配置 参照我前面的文章可以使用FlowDroid安装初体验 为了看代码了解FlowDroid如何处…

关于CICD流水线的前端项目运行错误,npm项目环境配置时出现报错:Not Found - GET https://registry.npm...

关于CICD流水线的前端项目运行错误&#xff0c;npm项目环境配置时出现报错&#xff1a;Not Found - GET https://registry.npm… 原因应该是某些jar包缓存中没有需要改变镜像将包拉下来 npm config set registry http://registry.npm.taobao.org npm install npm run build

java实现多文件压缩zip

1&#xff0c;需求 需求要求实现多个文件压缩为zip文件 2&#xff0c;代码 package com.example.demo;import java.io.*; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import…

【宝藏系列】一文带你了解STM32内置的硬件功能安全属性

【宝藏系列】一文带你了解STM32内置的硬件功能安全属性 文章目录 【宝藏系列】一文带你了解STM32内置的硬件功能安全属性&#x1f468;‍&#x1f3eb;概览1️⃣双看门狗&#xff1a;独立看门狗和窗口看门狗2️⃣电源监测3️⃣时钟安全系统CSS4️⃣SRAM奇偶校验位5️⃣硬件ECC6…

【两周学会FPGA】从0到1学习紫光同创FPGA开发|盘古PGL22G开发板学习之数码管动态显示(五)

本原创教程由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处 适用于板卡型号&#xff1a; 紫光同创PGL22G开发平台&#xff08;盘古22K&#xff09; 一&#xff1a;盘古22K开发板&#xff08;紫光同创PGL22G开发…

口碑最好的洗拖一体机 大面积洗地机十大排名

口碑最好的洗拖一体机 大面积洗地机十大排名 口碑最好的洗拖一体机&#xff0c;是现代家庭清洁的必备神器。它不仅能快速高效地清洁地面&#xff0c;还能省时省力&#xff0c;完成一些繁琐的家务活。那么&#xff0c;当我们面对市面上琳琅满目的洗地机品牌时&#xff0c;该如何…

Qt/C++编写视频监控系统81-Onvif报警抓图和录像并回放

一、前言 视频监控系统中的图文警情模块&#xff0c;是通过Onvif协议的事件订阅拿到的&#xff0c;通过事件订阅后&#xff0c;设备的各种报警事件比如入侵报警/遮挡报警/越界报警/开关量报警等&#xff0c;触发后都会主动往订阅者发送&#xff0c;而且一般都是会发送两次&…

idea创建同名模块问题:模块变为灰色不可用,模块已经存在

1. 问题1&#xff1a;同名模块变为灰色 idea创建一个模块&#xff0c;由于创建过程哪一步错误了&#xff0c;此时再次创建同名的模块&#xff0c;发现模块变为灰色&#xff1a;原因是创建同名的模块会被忽略掉&#xff0c;不可用。 删除模块 再次创建同名模块&#xff1a;变…