STL——常用算法(二)
一、常用拷贝和替换算法
1.copy

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void printVector(int val)
{cout << val << " ";
}
void test01()
{vector<int>v1;for (int i = 0; i < 10; i++){v1.push_back(i);}vector<int>v2;v2.resize(v1.size());copy(v1.begin(), v1.end(), v2.begin());for_each(v2.begin(), v2.end(), printVector);cout << endl;
}
int main()
{test01();return 0;
}
2.replace

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void printVector(int val)
{cout << val << " ";
}
void test01()
{vector<int>v1;for (int i = 0; i < 10; i++){v1.push_back(i);}replace(v1.begin(), v1.end(), 5, 10);for_each(v1.begin(), v1.end(), printVector);cout << endl;
}
int main()
{test01();return 0;
}
3.replace_if

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class MyPrint
{
public:void operator()(int val){cout << val << " ";}
};
class Greater5
{
public:bool operator()(int val){return val >= 5;}
};
void test01()
{vector<int>v1;for (int i = 0; i < 10; i++){v1.push_back(i);}for_each(v1.begin(), v1.end(), MyPrint());cout << endl;replace_if(v1.begin(), v1.end(), Greater5(), 10);for_each(v1.begin(), v1.end(), MyPrint());cout << endl;
}
int main()
{test01();return 0;
}
4.swap

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class MyPrint
{
public:void operator()(int val){cout << val << " ";}
};
void test01()
{vector<int>v1;vector<int>v2;for (int i = 0; i < 10; i++){v1.push_back(i);v2.push_back(i + 100);}for_each(v1.begin(), v1.end(), MyPrint());cout << endl;for_each(v2.begin(), v2.end(), MyPrint());cout << endl;swap(v1, v2);for_each(v1.begin(), v1.end(), MyPrint());cout << endl;for_each(v2.begin(), v2.end(), MyPrint());cout << endl;
}
int main()
{test01();return 0;
}
二、常用算数生成算法
1.accumulate

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class MyPrint
{
public:void operator()(int val){cout << val << " ";}
};
void test01()
{vector<int>v1;vector<int>v2;for (int i = 0; i <= 100; i++){v1.push_back(i);}int total = accumulate(v1.begin(), v1.end(), 1000);//5050+1000//for_each(v1.begin(), v1.end(), MyPrint());cout << total << endl;
}
int main()
{test01();return 0;
}
2.fill

#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
class MyPrint
{
public:void operator()(int val){cout << val << " ";}
};
void test01()
{vector<int>v1;v1.resize(10);for_each(v1.begin(), v1.end(), MyPrint());cout << endl;fill(v1.begin(), v1.end(), 10);for_each(v1.begin(), v1.end(), MyPrint());
}
int main()
{test01();return 0;
}
三、常用集合算法
1.set_intersection

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void MyPrint(int val)
{cout << val << " ";
}
void test01()
{vector<int>v1;vector<int>v2;for (int i = 0; i < 10; i++){v1.push_back(i);v2.push_back(i + 5);}vector<int>v3;v3.resize(min(v1.size(), v2.size()));vector<int>::iterator itEnd = set_intersection(v1.begin(), v1.end(), v2.begin(), v2.end(), v3.begin());for_each(v3.begin(), itEnd, MyPrint);cout << endl;
}
int main()
{test01();return 0;
}
2.set_union

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void MyPrint(int val)
{cout << val << " ";
}
void test01()
{vector<int>v1;vector<int>v2;for (int i = 0; i < 10; i++){v1.push_back(i);v2.push_back(i + 5);}vector<int>v3;v3.resize(v1.size() + v2.size());vector<int>::iterator itEnd = set_union(v1.begin(), v1.end(), v2.begin(), v2.end(), v3.begin());for_each(v3.begin(), itEnd, MyPrint);cout << endl;
}
int main()
{test01();return 0;
}
3.set_difference
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void MyPrint(int val)
{cout << val << " ";
}
void test01()
{vector<int>v1;vector<int>v2;for (int i = 0; i < 10; i++){v1.push_back(i);v2.push_back(i + 5);}vector<int>v3;v3.resize(max(v1.size(), v2.size()));vector<int>::iterator itEnd = set_difference(v1.begin(), v1.end(), v2.begin(), v2.end(), v3.begin());for_each(v3.begin(), itEnd, MyPrint);cout << endl;vector<int>::iterator itEnd1 = set_difference(v2.begin(), v2.end(), v1.begin(), v1.end(), v3.begin());for_each(v3.begin(), itEnd1, MyPrint);cout << endl;
}
int main()
{test01();return 0;
}相关文章:
STL——常用算法(二)
一、常用拷贝和替换算法 1.copy #include <iostream> #include <vector> #include <algorithm> using namespace std; void printVector(int val) {cout << val << " "; } void test01() {vector<int>v1;for (int i 0; i <…...
MyCAT 2 底层原理
MyCAT 2 底层原理 1. MyCAT 2 架构概述 MyCAT 2 是一款开源的数据库中间件,它通过分库分表、读写分离、动态路由等机制提升数据库系统的性能和扩展性。MyCAT 2 的架构设计灵活,适用于多种数据库类型,包括 MySQL、PostgreSQL 和 SQL Server …...
操作系统实训复习笔记(第7关:生产者消费者问题实践)
目录 第7关:生产者消费者问题实践 第1关:生产者消费者问题实践 1、在主线程中初始化锁为解锁状态 2、访问对象时的加锁操作与解锁操作 3、(生产和消费进程操作后)信号量操作实现进程同步 4、先等待(生产还是消费…...
通过物联网管理多台MQTT设备-基于全志T527开发板
一、系统概述 基于米尔-全志 T527设计一个简易的物联网网关,该网关能够管理多台MQTT设备,通过MQTT协议对设备进行读写操作,同时提供HTTP接口,允许用户通过HTTP协议与网关进行交互,并对设备进行读写操作。 二、系统架…...
Python学习前简介
1.python简介 2.python特点 3.python解释器 4.pyCharm简介 一、python简介 Python是一种高级编程语言,用于多种应用,包括网站开发、数据科学、人工智能、机器学习、桌面应用、网络应用、软件开发、网络爬虫等。它由Guido van Rossum于1991年首次发布&am…...
【Text2SQL 论文】MAGIC:为 Text2SQL 任务自动生成 self-correction guideline
论文:MAGIC: Generating Self-Correction Guideline for In-Context Text-to-SQL ⭐⭐⭐ 莱顿大学 & Microsoft, arXiv:2406.12692 一、论文速读 DIN-SQL 模型中使用了一个 self-correction 模块,他把 LLM 直接生成的 SQL 带上一些 guidelines 的 p…...
2024 年 8 款最佳建筑 3D 渲染软件
你现在使用的3D 渲染软件真得适合你吗? 在建筑和室内渲染当中,市面上有许多3D渲染软件可供选择。然而,并不是每款软件都适合你的需求。本指南将重点介绍2024年精选的8款最佳建筑3D渲染软件,帮助你了解不同的选项,并选…...
MAB规范(3):Chapter6 Glossary 术语表
第6章 - 术语表 此章不做过多的批注,都是些简单的术语解释。...
40python数据分析numpy基础之diag处理矩阵对角线元素
1 python数据分析numpy基础之diag处理矩阵对角线元素 python的numpy库的diag(v,k0)函数,以一维数组的形式返回方阵的对角线元素,或将一维数组转换为方阵(非对角线元素为0)。 方阵:方形矩阵,行数和列数相等…...
ffmpeg+nginx+video实现rtsp流转hls流,web页面播放
项目场景: 最近调试海康摄像头需要将rtsp流在html页面播放,因为不想去折腾推拉流,所以我选择ffmpeg转hls流,nginx转发,html直接访问就好了 1.首先要下载nginx和ffmpeg 附上下载地址: nginx nginx news ffmpeg htt…...
1、Redis系列-Redis高性能原理详解
Redis高性能原理详解 Redis是一款高性能的内存数据库,广泛应用于需要快速读写访问的数据密集型应用中。它的高性能得益于多方面的设计和优化。以下是Redis高性能实现的详细解释: 1. 单线程架构 Redis采用单线程架构来处理客户端请求,这与传…...
18.枚举
学习知识:枚举类型、相关的使用方法 Main.java: public class Main {public static void main(String[] args) {myenum[] colorlist myenum.values();//获取枚举中所有对象的引用数组for (myenum one : colorlist){System.out.println(one.toString(…...
全省高等职业学校大数据技术专业建设暨专业质量监测研讨活动顺利开展
6月21日,省教育评估院在四川邮电职业技术学院组织开展全省高等职业学校大数据技术专业建设暨专业质量监测研讨活动。省教育评估院副院长赖长春,四川邮电职业技术学院党委副书记、校长冯远洪,四川邮电职业技术学院党委委员、副校长程德杰等出席…...
2-16 基于matlab的动载荷简支梁模态分析程序
基于matlab的动载荷简支梁模态分析程序,可调节简支梁参数,包括截面宽、截面高、梁长度、截面惯性矩、弹性模量、密度。输出前四阶固有频率,任意时刻、位置的响应结果。程序已调通,可直接运行。 2-16 matlab 动载荷简支梁模态分析 …...
AI大模型的核心
前言 没错,AI大模型的核心成功因素通常可以归结为三大要素:大数据、大算力和强算法。这三个因素相辅相成,共同推动了现代人工智能技术的发展。 1. 大数据 • 定义:指的是涵盖广泛领域的海量数据,包括文本、图像、音…...
【Android面试八股文】ViewHolder为什么要被声明成静态内部类?
文章目录 ViewHolder为什么要被声明成静态内部类?1. 避免隐式引用导致的内存泄漏2. 提高性能3. 代码可读性和维护性实例代码总结ViewHolder为什么要被声明成静态内部类? 将 ViewHolder 声明为静态内部类有几个重要的原因,这样做可以提高性能并避免潜在的内存泄漏。下面是详…...
Android 11 系统OTA升级到旧版本(去除升级时间戳校验)
简介 由于客户要求能够通过OTA升级到旧版本因此探寻反向升级的方法。 方法一:进入recover模式 adb reboot recovery 点击Apply update from SD card 然后选择以前的OTA升级包就可以了。这种方式实测可以升级到旧的版本。但是我们的客户是通过在线升级软件进行更新…...
更新表的统计信息并清空缓存--DM8达梦数据库
更新表的统计信息并清空缓存--DM8达梦数据库 环境介绍1 收集 <表> 上所有对象信息,含索引2 清理缓存的执行计划3 达梦数据库学习使用列表 环境介绍 在某些环境刚完成数据迁移, 10万行以上大表数据量有修改1/3 ,查询条件已经创建索引,执行计划不好,或执行计划…...
【前后端实现】AHP权重计算
AHP权重计算: 需求:前端记录矩阵维度、上三角值,后端构建比较矩阵、计算权重值并将结果返回给前端 比较矩阵构建 如果你想要根据上三角(不包括对角线)的值来构建对称矩阵,那么你可以稍作修改上述的generate…...
K8S日常运维手册
Kubernetes(简称 K8S)是一种广泛使用的容器编排平台,能够自动化部署、扩展和管理容器化应用。对于运维人员来说,掌握 Kubernetes 的日常运维技能是确保系统稳定运行的关键。本文将介绍一些 Kubernetes 日常运维的基本操作与技巧&a…...
告别误报!用FR2V H00磁通门传感器搞定充电桩直流漏电检测(附IEC 62955标准解读)
破解充电桩直流漏电检测难题:FR2V H00磁通门传感器的工程实践 800V高压快充技术正在重塑电动汽车充电体验,但随之而来的直流漏电检测难题却让不少工程师夜不能寐。想象一下,一个价值百万的充电桩因为误报停机,或者更糟——漏报导致…...
WRF模式选哪个边界层方案?从YSU到MYNN,手把手教你根据天气场景做选择
WRF模式边界层方案实战指南:从YSU到MYNN的精准选择策略 清晨的山谷雾气弥漫,气象站的监测数据不断跳动——这是WRF模式使用者最熟悉的场景。当你准备模拟一次强对流过程或城市热岛效应时,边界层参数化方案的选择往往成为影响结果精度的关键变…...
Python OCR实战:手把手教你解决pytesseract的TesseractError,搞定chi_sim.traineddata缺失问题
Python OCR实战:彻底解决chi_sim.traineddata缺失的终极指南 当你第一次尝试用Python的pytesseract库识别中文文本时,那个刺眼的红色报错信息很可能让你措手不及。别担心,这不是你代码的问题,而是大多数新手都会遇到的经典障碍。…...
拆解一个Buck电路实例:我是如何根据Datasheet为我的电源项目挑选MOS管的
拆解一个Buck电路实例:我是如何根据Datasheet为我的电源项目挑选MOS管的 当我在设计一款输入36V、输出12V/5A的Buck转换器时,MOS管的选择成了整个项目的关键转折点。市面上琳琅满目的型号让人眼花缭乱,而Datasheet里密密麻麻的参数表格更像是…...
如何在Windows下使用Rufus轻松格式化ext文件系统:完整指南
如何在Windows下使用Rufus轻松格式化ext文件系统:完整指南 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus 还在为在Windows系统下无法直接创建Linux文件系统而烦恼吗?&…...
GitLab vs Gitea 深度解析:如何选择适合你的代码托管方案?
1. 核心定位与适用场景对比 第一次接触代码托管平台时,我和很多开发者一样在GitLab和Gitea之间纠结。经过三年在不同规模团队的实际使用,我发现这两个工具就像瑞士军刀和美工刀的关系——没有绝对的好坏,关键看你要切什么。 GitLab更像是个&q…...
这次咱们来拆解PFC二维浆岩直剪案例。这个案例有意思的地方在于它展示了颗粒材料与刚性墙体接触面的剪切行为,咱们边看代码边分析剪切曲线的门道
PFC案例9,浆-岩二维直剪,包含代码源文件、代码解释、曲线分析先看模型搭建的关键代码段: ;生成浆体颗粒 ball distribute ... ;创建上下剪切盒 wall generate id 1 vertices 0 0 1 0 1 1 0 1 wall generate id 2 vertices 0 0.2 1 0.2;设置…...
YOLOv9官方镜像快速入门:三步完成图片检测,支持自定义数据集训练
YOLOv9官方镜像快速入门:三步完成图片检测,支持自定义数据集训练 1. 环境准备与快速部署 YOLOv9官方训练与推理镜像已经预装了完整的深度学习开发环境,包含所有必要的依赖项。这意味着你不需要手动安装Python、CUDA或PyTorch,也…...
Swin Transformer生产部署与性能调优:从环境适配到架构优化的全周期解决方案
Swin Transformer生产部署与性能调优:从环境适配到架构优化的全周期解决方案 【免费下载链接】Swin-Transformer This is an official implementation for "Swin Transformer: Hierarchical Vision Transformer using Shifted Windows". 项目地址: http…...
前后端框架模式对比(golang)
前后端架构模式对比:分离与不分离 现代Web开发中,前后端架构的选择直接影响开发效率、维护成本和系统性能。结合Golang的实现,可以更清晰地分析前后端分离(如REST API 前端框架)与不分离(如服务端渲染&…...
