C++,stl,常用排序算法,常用拷贝和替换算法

news2024/12/24 9:31:28

目录

1.常用排序算法

sort

random_shuffle

merge

reverse

2.常用拷贝和替换算法

copy

replace

replace_if

swap


1.常用排序算法

sort

默认从小到大排序 

#include<bits/stdc++.h>
using namespace std;

int main()
{
	vector<int> v;
	v.push_back(1);
	v.push_back(2);
	v.push_back(9);
	v.push_back(2);
	v.push_back(4);
	
	sort(v.begin(),v.end());
	
	for(auto &ele:v)
	{
		cout << ele << ' ';
	}
	
	sort(v.begin(),v.end(),greater<int>());
	//降序排列
	cout << endl;
	
	for(auto &ele:v)
	{
		cout << ele << ' ';
	}
	
	return 0;
}

random_shuffle

使用的时候要加随机数种子

 

#include<bits/stdc++.h>
using namespace std;

void print(int v)
{
	cout << v << ' ';
}

int main()
{
	srand((unsigned int)time(NULL));
	
	vector<int> v;
	v.push_back(1);
	v.push_back(2);
	v.push_back(9);
	v.push_back(2);
	v.push_back(4);
	
	for_each(v.begin(),v.end(),print);
	
	cout << endl;
	
	random_shuffle(v.begin(),v.end());
	for_each(v.begin(),v.end(),print);
	
	return 0;
}

 

merge

 

#include<bits/stdc++.h>
using namespace std;

void print(int v)
{
	cout << v << ' ';
}

int main()
{
	vector<int> v1;
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(9);
	v1.push_back(2);
	v1.push_back(4);
	
	sort(v1.begin(),v1.end());
	
	vector<int> v2;
	for(int i = 2; i <= 6; i += 2)
	{
		v2.push_back(i);
	}
	
	vector<int> v;
	v.resize(v1.size() + v2.size());
	
	//必须v1,v2都是升序或者都是降序
	merge(v1.begin(),v1.end(),v2.begin(),v2.end(),v.begin());
	
	for_each(v.begin(),v.end(),print);
	
	return 0;
}

 

reverse

 

#include<bits/stdc++.h>
using namespace std;

void print(int v)
{
	cout << v << ' ';
}

int main()
{
	vector<int> v1;
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(9);
	v1.push_back(2);
	v1.push_back(4);
	
	for_each(v1.begin(),v1.end(),print);
	cout << endl;
	reverse(v1.begin(),v1.end());
	cout << "反转后" << endl;
	for_each(v1.begin(),v1.end(),print);
	
	return 0;
}

 

2.常用拷贝和替换算法

 

copy

#include<bits/stdc++.h>
using namespace std;

void print(int v)
{
	cout << v << ' ';
}

int main()
{
	vector<int> v1;
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(9);
	v1.push_back(2);
	v1.push_back(4);
	
	for_each(v1.begin(),v1.end(),print);
	cout << endl;
	
	vector<int> v2;
	v2.resize(v1.size());
	copy(v1.begin(),v1.end(),v2.begin());
	
	cout << "复制后" << endl;
	for_each(v2.begin(),v2.end(),print);
	
	return 0;
}

replace

 

#include<bits/stdc++.h>
using namespace std;

void print(int v)
{
	cout << v << ' ';
}

int main()
{
	vector<int> v1;
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(9);
	v1.push_back(2);
	v1.push_back(4);
	
	for_each(v1.begin(),v1.end(),print);
	cout << endl;
	
	cout << "替换后" << endl;
	
	replace(v1.begin(),v1.end(),2,1000);
	
	for_each(v1.begin(),v1.end(),print);
	
	return 0;
}

 

replace_if

 

#include<bits/stdc++.h>
using namespace std;

class print
{
public:
	void operator()(int v)
	{
		cout << v << ' ';
	}
};

class dayu2
{
public:
	bool operator()(int v)
	{
		return v > 2;
	}
};

int main()
{
	vector<int> v1;
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(9);
	v1.push_back(2);
	v1.push_back(4);
	
	for_each(v1.begin(),v1.end(),print());
	cout << endl;
	
	cout << "替换后" << endl;
	
	replace_if(v1.begin(),v1.end(),dayu2(),999);
	
	for_each(v1.begin(),v1.end(),print());
	
	return 0;
}

 

swap

 交换的容器要是同种类型

#include<bits/stdc++.h>
using namespace std;

class print
{
public:
	void operator()(int v)
	{
		cout << v << ' ';
	}
};

int main()
{
	vector<int> v1;
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(9);
	v1.push_back(2);
	v1.push_back(4);
	
	vector<int> v2;
	for(int i = 1; i <= 3; i++)
	{
		v2.push_back(i);
	}
	
	cout << "交换前" << endl;
	for_each(v1.begin(),v1.end(),print());
	cout << endl;
	for_each(v2.begin(),v2.end(),print());
	
	cout << endl << "交换后" << endl;
	swap(v1,v2);
	
	for_each(v1.begin(),v1.end(),print());
	cout << endl;
	for_each(v2.begin(),v2.end(),print());
	
	return 0;
}

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

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

相关文章

cpp杂项知识点(一)

大小端验证 代码如下&#xff1a; #include <iostream> #include <stdio.h> #include <memory> #include <string.h> #include <string>using namespace std;void hexdump(void *pSrc, int len ) {unsigned char *line;int i;int thisline;in…

Java的集合框架和泛型

文章目录 集合框架什么是集合框架类和接口总览 集合框架的重要性背后所涉及的数据结构以及算法什么是数据结构容器背后对应的数据结构什么是算法 包装类基本数据类型和对应的包装类装箱和拆箱自动装箱和自动拆箱 泛型什么是泛型引出泛型语法泛型类泛型的上界(没有下界)泛型方法…

Vue2学习第三天

Vue2 学习第三天 1. 计算属性 computed 计算属性实现 定义&#xff1a;要用的属性不存在&#xff0c;要通过已有属性计算得来。 原理&#xff1a;底层借助了Objcet.defineproperty方法提供的getter和setter。 get函数什么时候执行&#xff1f; 初次读取时会执行一次。当依赖…

知识图谱:py2neo将csv文件导入neo4j

文章目录 安装py2neo创建节点-连线关系图导入csv文件删除重复节点并连接边 安装py2neo 安装python中的neo4j操作库&#xff1a;pip install py2neo 安装py2neo后我们可以使用其中的函数对neo4j进行操作。 图数据库Neo4j中最重要的就是结点和边&#xff08;关系&#xff09;&a…

数字经济政策 | ZF工作报告-60个文本词频

根据各省政府工作报告&#xff0c;参考金灿阳(2022)和陶长琪(2022)&#xff0c;借助Python软件&#xff0c;统计数字经济相关的关键词词频&#xff0c;分别记为数字经济政策词频A、数字经济政策词频B A文献参考 B文献参考 年度趋势 一、数据介绍 数据名称&#xff1a; 政府工…

OpenAI首个文生视频模型亮相,你觉得咋样?

2月16日凌晨&#xff0c;OpenAI再次扔出一枚深水炸弹&#xff0c;发布了首个文生视频模型Sora。据介绍&#xff0c;Sora可以直接输出长达60秒的视频&#xff0c;并且包含高度细致的背景、复杂的多角度镜头&#xff0c;以及富有情感的多个角色。 目前官网上已经更新了48个视频d…

QGIS004:【08图层工具箱】-导出到电子表格、提取图层范围

摘要&#xff1a;QGIS图层工具箱常用工具有导出到电子表格、提取图层范围等选项&#xff0c;本文介绍各选项的基本操作。 实验数据&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1ZK4_ShrQ5BsbyWfJ6fVW4A?pwdpiap 提取码&#xff1a;piap 一、导出到电子表格 工具…

集团企业大数据应用:突破痛点,释放数据价值

在数字经济日益崛起的背景下&#xff0c;集团企业以其管理范围广泛、业务领域多元化和分支机构复杂化的特性&#xff0c;在市场竞争中扮演着重要角色。为了维持和提升这种竞争力&#xff0c;大数据应用成为了集团企业不可或缺的战略工具。然而&#xff0c;在实际应用中&#xf…

图表示学习 Graph Representation Learning chapter1 引言

图表示学习 Graph Representation Learning chapter1 引言 前言1.1图的定义1.1.1多关系图1.1.2特征信息 1.2机器学习在图中的应用1.2.1 节点分类1.2.2 关系预测1.2.3 聚类和组织检测1.2.4 图分类、回归、聚类 前言 虽然我并不研究图神经网络&#xff0c;但是我认为图高效的表示…

javascript+css+html购物车案例

javascript代码部分主要实现三部分功能 1、商品数量增加&#xff08;减少&#xff09;同时小计增加&#xff08;减少&#xff09; 这部分主要是通过for循环给增加&#xff08;减少&#xff09;按钮绑定点击事件 1&#xff09;点击后计数器自增&#xff08;自减&#xff09;…

【深度学习:开源数据注释】开源数据注释完整指南

【深度学习&#xff1a;Automated Data Annotation】开源数据注释完整指南 什么是开源数据标注工具&#xff1f;您会使用开源标签工具做什么&#xff1f;主要的开源数据标注工具有哪些&#xff1f;CVATMONAI LabelLabelMeRIL-ContourSefexa 使用开源注释工具的优点和缺点是什么…

Sora:将文本转化为视频的创新之旅

一.能力 我们正致力于让 AI 掌握理解和模拟物理世界动态的能力&#xff0c;旨在培养能够协助人们解决现实世界互动问题的模型。 介绍 Sora——我们开发的文本到视频转换模型。Sora 能够根据用户的输入提示&#xff0c;生成最长达一分钟的高质量视频内容。 目前&#xff0c;Sora…

Gitee入门之工具的安装

一、gitee是什么&#xff1f; Gitee&#xff08;码云&#xff09;是由开源中国社区在2013年推出的一个基于Git的代码托管平台&#xff0c;它提供中国本土化的代码托管服务。它旨在为个人、团队和企业提供稳定、高效、安全的云端软件开发协作平台&#xff0c;具备代码质量分析、…

揭开Markdown的秘籍:引用|代码块|超链接

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;Markdown指南、网络奇遇记 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. ⛳️Markdown 引用1.1 &#x1f514;引用1.2 &#x1f514;嵌套引用1.3 &…

【Python---六大数据结构】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;Python &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; Python---六大数据结构 往期内容前言概述一下可变与不可变 Number四种不同的数值类型Number类型的创建i…

【Spring篇】Spring的创建与使用

目录 一 . 创建Spring项目 二 . Bean 对象存放到 Spring 三 . 从Spring中读到Bean 经过前⾯的学习我们已经知道了&#xff0c;Spring 就是⼀个包含了众多⼯具⽅法的 IoC 容器。既然是容器那么 它就具备两个最基本的功能&#xff1a; 将对象存储到容器&#xff08;Spring&am…

optee CA/TA flow

以 TEEC_InvokeCommand 为例 CA—normal world EL0 //imx-optee-client\libteec\src\tee_client_api.c TEEC_InvokeCommandioctl(session->ctx->fd, TEE_IOC_INVOKE, &buf_data)通过syscall陷入内核态driver linux driver—normal world EL1 tee_ioctl // drive…

一些方便的记录

如何在ubutun上安装qq 在QQ官网选择QQ Linux版本&#xff0c;然后选择X86下的deb类型文件进行下载 sudo dpkg -i linuxqq_3.2.5-21453_amd64.deb64 根据下载的版本不同对其进行更改 运行上述命令后显示应用程序可以看到安装后的QQ面板如何卸载安装在gnuradio的lora组件 - 进入…

php基础学习之可变函数(web渗透测试关键字绕过rce和回调函数)

可变函数 看可变函数的知识点之前&#xff0c;蒟蒻博主建议你先去看看php的可变变量&#xff0c;会更加方便理解&#xff0c;在本篇博客中的第五块知识点->php基础学习之变量-CSDN博客 描述 当一个变量所保存的值刚好是一个函数的名字&#xff08;由函数命名规则可知该值必…

Eclipse Version: 2023-03 (4.27.0) JDK19 Tomcat10.2

Eclipse Version: 2023-03 (4.27.0) JDK19 Tomcat10.2