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

目录

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.hqwc.cn/news/472762.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用C++,实现高精度加减乘除法运算!

我的个人主页 {\large \mathsf{{\color{Red} 我的个人主页} } } 我的个人主页 我的专栏&#xff1a; \mathcal{{\color{Green} 我的专栏&#xff1a;} } 我的专栏&#xff1a; 《精选文章》《算法》《每日一道编程题》《高精度算法》 文章目录 前言高精度计算初始模版string 转…

Web APIs -05

js执行机制 js是单线程&#xff0c;同一个时间只能做一件事情&#xff0c;所有任务需要排队所以有时候会渲染不连贯 同步任务 都在主线程上执行&#xff0c;形成一个执行栈 异步任务 js的异步是通过回调函数实现的分为三类&#xff1a;1.普通事件&#xff1a;click等&…

秒懂百科,C++如此简单丨第二十天:贪心算法2

目录 Everyday English 前言 洛谷 P1031 均分纸牌 题目描述 思路点拨 AC代码 洛谷 P1094 纪念品分组 题目描述 样例输入 样例输出 思路点拨 AC代码 洛谷 P2660 zzc 种田 题目描述 思路点拨 AC Code 结尾 Everyday English Dont miss the opportunity. 机不可…

文件管理大师:深入解析Linux的文件与目录操控

目录 一、文件命名规则 1、可以使用哪些字符? 2、文件名的长度 3、Linux文件名大小写 4、Linux文件扩展名 二、文件管理命令 1、目录创建/删除 mkdir创建目录 直接创建文件夹 创建多个文件夹 递归创建写法 总结mkdir 删除空目录 2、文件创建、删除 touch创建文…

【图像分割 2024】ParaTransCNN

【图像分割 2024】ParaTransCNN 论文题目&#xff1a;ParaTransCNN: Parallelized TransCNN Encoder for Medical Image Segmentation 中文题目&#xff1a;用于医学图像分割的并行TransCNN编码器 论文链接&#xff1a;https://arxiv.org/abs/2401.15307 论文代码&#xff1a;H…

UI风格汇:毛玻璃风格风靡的原因解读

Hello&#xff0c;我是大千UI工场&#xff0c;设计风格是我们新开辟的栏目&#xff0c;主要讲解各类UI风格特征、辨识方法、应用场景、运用方法等&#xff0c;本次带来的是毛玻璃风格的解读&#xff0c;有设计需求可以私聊。 一、什么是毛玻璃风格 毛玻璃风格&#xff08;Fros…

(08)Hive——Join连接、谓词下推

前言 Hive-3.1.2版本支持6种join语法。分别是&#xff1a;inner join&#xff08;内连接&#xff09;、left join&#xff08;左连接&#xff09;、right join&#xff08;右连接&#xff09;、full outer join&#xff08;全外连接&#xff09;、left semi join&#xff08;左…

鸿蒙系统优缺点,能否作为开发者选择

凡是都有对立面&#xff0c;就直接说说鸿蒙的优缺点吧。 鸿蒙的缺点&#xff1a; 鸿蒙是从2019年开始做出来的&#xff0c;那时候是套壳Android大家都知晓。从而导致大家不看鸿蒙系统&#xff0c;套壳Android就是多次一举。现在鸿蒙星河版已经是纯血鸿蒙&#xff0c;但是它的…

高性能MySQL 阅读笔记

mysql由服务器端与存储引擎两部分组成&#xff0c;存储引擎部分的锁机制对服务器端是透明的。服务器端内置缓存机制&#xff0c;有解析器和优化器机制。不同的存储引擎对事务、并发等都用不同的处理。 ACID代表的特性&#xff1a;原子性、一致性、隔离性、持久性 共享锁与排他…

【Web】CTFSHOW java刷题记录(全)

目录 web279 web280 web281 web282 web283 web284 web285 web286 web287 web288 ​web289 web290 web291 web292 web293 web294 web295 web296 web297 web298 web299 web300 web279 题目提示 url里告诉我们是S2-001 直接进行一个exp的搜 S2-001漏洞分析…

网络安全最典型基础靶场-DVWA-本地搭建与初始化

写在前面&#xff1a; 之前也打过这个 DVWA 靶场&#xff0c;但是是在虚拟机环境下的一个小块分区靶场&#xff1b; 本篇博客主要介绍在本地搭建 DVWA 靶场以及靶场的初始化&#xff0c;后续会陆续更新通关教程。 由于我们是在本地搭建&#xff0c;则需要基于你已经装好 phpstu…

C++数据结构与算法——双指针法

C第二阶段——数据结构和算法&#xff0c;之前学过一点点数据结构&#xff0c;当时是基于Python来学习的&#xff0c;现在基于C查漏补缺&#xff0c;尤其是树的部分。这一部分计划一个月&#xff0c;主要利用代码随想录来学习&#xff0c;刷题使用力扣网站&#xff0c;不定时更…