C++常用算法

news/2024/7/7 20:50:34

c++常用算法介绍

类似python里面一些调用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • c++常用算法介绍
  • 前言
  • 一、排序算法
    • 1.C++ sort()排序函数
    • 2.stable_sort() 函数
    • 3.partial_sort()函数
    • 4.nth_element()函数
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

将介绍一些同排序和合并松散关联的算法。STL算法部分主要由头文件 < algorithm>, < numeric>, < functional> 组成。要使用 STL中的算法函数必须包含头文件 < algorithm>,对于数值算法须包含 < numeric >,< functional> 中则定义了一些模板类,用来声明函数对象。


提示:以下是本篇文章正文内容,下面案例可供参考

一、排序算法

包含在头文件中

1.C++ sort()排序函数

sort() 只对 array、vector、deque 这 3 个容器提供支持.
对于指定区域内值相等的元素,sort() 函数无法保证它们的相对位置不发生改变。

sort ( iv4.begin(), iv4.end(), Comp); // 也可以使用自定义Comp()函数

vector<int> myvector{ 32, 71, 12, 45, 26, 80, 53, 33 };
    //调用第一种语法格式,对 32、71、12、45 进行排序
   sort(myvector.begin(), myvector.begin() + 4); //(12 32 45 71) 26 80 53 33
    //调用第二种语法格式,利用STL标准库提供的其它比较规则(比如 greater<T>)进行排序
    sort(myvector.begin(), myvector.begin() + 4, greater<int>()); //(71 45 32 12) 26 80 53 33

2.stable_sort() 函数

stable_sort() 函数完全可以看作是 sort() 函数在功能方面的升级版。换句话说,stable_sort() 和 sort() 具有相同的使用场景,就连语法格式也是相同的(后续会讲),只不过前者在功能上除了可以实现排序,还可以保证不改变相等元素的相对位置

stable_sort: 与sort类似,不过保留相等元素之间的顺序关系.

vector<int> myvector{ 32, 71, 12, 45, 26, 80, 53, 33 };
    //调用第一种语法格式,对 32、71、12、45 进行排序
    stable_sort(myvector.begin(), myvector.begin() + 4); //(12 32 45 71) 26 80 53 33
    //调用第二种语法格式,利用STL标准库提供的其它比较规则(比如 greater<T>)进行排序
   stable_sort(myvector.begin(), myvector.begin() + 4, std::greater<int>()); //(71 45 32 12) 26 80 53 33

3.partial_sort()函数

部分排序”仅仅是对 partial_sort() 函数功能的一个概括
eg:存有 100 万个元素的容器,但我们只想从中提取出值最小的 10 个元素,不用对100万都排序

p a r t i a l s o r t ( ) 函数会以交换元素存储位置的方式实现部分排序的。 \color{red}{partial_sort() 函数会以交换元素存储位置的方式实现部分排序的。} partialsort()函数会以交换元素存储位置的方式实现部分排序的。
具体来说,partial_sort() 会将 [first, last) 范围内最小(或最大)的 middle-first 个元素移动到 [first, middle) 区域中,并对这部分元素做升序(或降序)排序。

vector<int> myvector{ 3,2,5,4,1,6,9,7};
    //以默认的升序排序作为排序规则,将 myvector 中最小的 4 个元素移动到开头位置并排好序
    partial_sort(myvector.begin(), myvector.begin() + 4, myvector.end());//1 2 3 4 5 6 9 7

C++ partial_sort_copy()排序函数
partial_sort_copy() 函数的功能和 partial_sort() 类似,唯一的区别在于,前者不会对原有数据做任何变动,而是先将选定的部分元素拷贝到另外指定的数组或容器中,然后再对这部分元素进行排序。

4.nth_element()函数

二、使用步骤

1.引入库

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.读入数据

代码如下(示例):

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。


http://lihuaxi.xjx100.cn/news/2036052.html

相关文章

网站管理新利器:免费在线生成 robots.txt 文件!

&#x1f916; 探索网站管理新利器&#xff1a;免费在线生成 robots.txt 文件&#xff01; 你是否曾为搜索引擎爬虫而烦恼&#xff1f;现在&#xff0c;我们推出全新的在线 robots.txt 文件生成工具&#xff0c;让你轻松管理网站爬虫访问权限&#xff0c;提升网站的可搜索性和…

有关数字各位数之和的题

CFround928 div4的C题 题目解析 这道题首先强调的是一个测试样例给了t之后的限时为0.5s而t的范围在1e4以内&#xff0c;n的范围在2e5以内&#xff0c;因此对于每一个n应该以O(1)的时间复杂度给出答案&#xff0c;故&#xff0c;必须预处理2e5以内的任何一个数&#xff0c;从而…

SICTF Round#3 Web方向 题解WP

100&#xff05;_upload 题目描述&#xff1a;小茂夫说&#xff1a;一直上传恶意文件尊嘟要生气了&#xff0c;世事莫固守&#xff0c;转变思路求突破 开题&#xff0c;注意有个文件包含 题目把后缀过滤死了&#xff0c;无法上传php后缀文件。文件内容些许过滤&#xff0c;短…

数字化转型导师坚鹏:政府数字化转型之数字化新技术解析与应用

政府数字化转型之数字化新技术解析与应用 课程背景&#xff1a; 数字化背景下&#xff0c;很多政府存在以下问题&#xff1a; 不清楚新技术的发展现状&#xff1f; 不清楚新技术的重要应用&#xff1f; 不清楚新技术的成功案例&#xff1f; 课程特色&#xff1a; 有…

【Git】Gitbash使用ssh 上传本地项目到github

SSH Git上传项目到GitHub&#xff08;图文&#xff09;_git ssh上传github-CSDN博客 前提 ssh-keygen -t rsa -C “自己的github电子邮箱” 生成密钥&#xff0c;公钥保存到自己的github的ssh里 1.先创建一个仓库&#xff0c;复制ssh地址 git init git add . git commit -m …

网络安全(黑客)自学day1

有很多想要转行网络安全或者选择网络安全专业的人在进行决定之前一定会有的问题&#xff1a; 什么样的人适合学习网络安全&#xff1f;我适不适合学习网络安全&#xff1f; 当然&#xff0c;产生这样的疑惑并不奇怪&#xff0c;毕竟网络安全这个专业在2017年才调整为国家一级学…

app逆向-Java反射

文章目录 一、前言二、运用1、获取类class对象2、如何判断是否为某个类的实例3、创建类的实例/对象4、获取构造器信息5、获取class类的成员变量/属性6、获取public/private⽅法 一、前言 Java反射是指在运行时动态获取类的信息、调用类的方法、访问类的属性等能力。通过反射&a…

给label-studio 配置sam(segment anything)ml 记录

给label-studio 配置sam&#xff08;segment anything&#xff09;ml 后端记录 配置ml后台下载代码下载模型文件创建环境模型转换后端服务启动 配置label-studio 前端配置模型后端连接配置标注模板标注界面使用 参考链接 配置ml后台 下载代码 git clone https://github.com/H…