Linux C++ 039-STL之拷贝和替换算法

Linux C++ 039-STL之拷贝和替换算法

本节关键字:Linux、C++、拷贝算法、替换算法
相关库函数:copy、replace、replace_if、swap

copy()

功能描述:容器内指定范围的元素拷贝到另一容器中
函数原型:

copy(iterator beg, iterator end, iterator dest);
// dest - 目标起始迭代器

示例:

#include <vector>
#include <algorithm>void myPrint(const 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(), myPrint);cout << endl;
}

总结:利用copy算法在拷贝时,目标容器记得提前开辟空间

replace()

功能描述:将容器内指定范围的旧元素改为新元素
函数原型:

replace(iterator beg, iterator end, oldvalue, newvalue);

示例:

#include <vector>
#include <algorithm>class MyPrint
{
public:void operator()(const int val){cout << val << " ";}
};
void myPrint(const int val)
{cout << val << " ";
}
void test01()
{vector<int> v;for(int i=0;i<5;i++){v.push_back(1);}for_each(v.begin(), v.end(), myPrint);cout << endl;raplace(v.begin(), v.end(), 1, 2);for_each(v.begin(), v.end(), myPrint);//for_each(v.begin(), v.end(), MyPrint());cout << endl;
}

replace_if()

功能描述:将区间内满足条件的元素,替换成指定元素
函数原型:

replayce_if(iterator beg, iterator end, _Pred, newvalue);
// _Pred - 谓词

示例:

#include <vector>
#include <algorithm>class MyPrint
{
public:void operator()(const int val){cout << val << " ";}
}
class Greater3
{
public:bool operator()(const int val){return val >= 3;}
};
void myPrint(const int val)
{cout << val << " ";
}
void test01()
{vector<int> v;for(int i=0;i<5;i++){v.push_back(1);}for_each(v.begin(), v.end(), myPrint);//for_each(v.begin(), v.end(), MyPrint());cout << endl;raplace_if(v.begin(), v.end(), Greater3, 20);for_each(v.begin(), v.end(), myPrint);//for_each(v.begin(), v.end(), MyPrint());cout << endl;
}

总结:replace_if按条件替换,可以利用仿函数灵活筛选满足的条件

swap()

功能描述:互换两个容器的元素
函数原型:

swap(container c1, container c2);
// container - 交换类型
// 注意:交换的容器类型要一致

示例:

#include <vector>
#include <algorithm>class MyPrint
{
public:void operator()(const int val){cout << val << " ";}
};
void test01()
{vector<int> v1;for(int i=0;i<5;i++){v1.push_back(1);}vector<int> v2;for(int i=0;i<5;i++){v2.push_back(2);}for_each(v1.begin(), v1.end(), MyPrint());cout << endl;swap(v1, v2);for_each(v1.begin(), v1.end(), MyPrint());cout << endl;
}

总结:swap交换容器中的元素时,交换的容器类型要一致

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

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

相关文章

spring的自动配置原理

spring的自动配置原理 springboot配置文件的装配过程 1、springboot在启动的时候会加载主配置类&#xff0c;开启了EnableAutoConfiguration。 2、EnableAutoConfiguration的作用&#xff1a; 利用AutoConfigurationImportSelector给容器导入一些组件。查看selectImports方…

cuda 算法计算 提速技巧

1、除法改乘法 2、常数相关计算可提前算好&#xff0c;避免重复计算 3、尽量不用条件判断语句 4、sin、cos、pow等类似函数改为sinf、cosf、powf等单精度浮点运算函数&#xff0c;此操作会牺牲一点计算精度 5、避免使用double计算、整型除法等&#xff0c;单精度浮点数计算…

本地做好准备上传到Git分支,发现git上已经更新了,上传到dev分支

git add . git commit -m 备注 git pull --rebase origin dev 拉取dev上的代码合并到本地 git push -u origin dev推到远程dev上&#xff08;注意着可能不是最后一步&#xff0c;先看完&#xff09; 如果报错&#xff0c;意思是本地没有dev分支&#xff0c;没办法上传到git上…

Qt对象池,单例模式,对象池可以存储其他类的对象指针

代码描述&#xff1a; 写了一个类&#xff0c;命名为对象池&#xff08;ObjectPool &#xff09;&#xff0c;里面放个map容器。 3个功能&#xff1a;添加对象&#xff0c;删除对象&#xff0c;查找对象 该类只构建一次&#xff0c;故采用单例模式功能描述&#xff1a;对象池可…

树和二叉树(一)

一、树 非线性数据结构&#xff0c;在实际场景中&#xff0c;存在一对多&#xff0c;多对多的情况。 树( tree&#xff09;是n (n>0&#xff09;个节点的有限集。当n0时&#xff0c;称为空树。 在任意一个非空树中&#xff0c;有如下特点。 1.有且仅有一个特定的称为根的节点…

ELK日志分析系统之Kafka

目录 一、消息队列基本介绍 1、为什么需要消息队列(MQ) 2、使用消息队列的好处 1.解耦 2.可恢复性 3.缓冲 4.灵活性 & 峰值处理能力 5.异步通信 3、Kafka消息队列的两种模式 1.点对点模式 2.发布/订阅模式 二、Kafka基本介绍 1、Kafka定义 2、Kafka概念 3、…

4. Vue Router4 动态路由

在 Vue Router 4 中&#xff0c;动态路由是一种非常强大的功能&#xff0c;它允许我们根据不同的 URL 参数来渲染不同的组件或者同一组件的不同状态。这对于创建用户个人页面或者具有大量内容的应用来说非常有用。 基本用法 要创建一个动态路由&#xff0c;我们可以在路由的路…

SSRF靶场

SSRF概述 ​ 强制服务器发送一个攻击者的请求 ​ 互联网上的很多web应用提供了从其他服务器&#xff08;也可以是本地)获取数据的功能。使用用户指定的URL&#xff0c;web应用可以获取图片&#xff08;载入图片&#xff09;、文件资源&#xff08;下载或读取)。如下图所示&…

【Blockchain】连接智能合约与现实世界的桥梁Chainlink

去中心化预言机试图实现依赖因果关系而不是个人关系的去信任和确定性结果。它以与区块链网络相同的方式实现这些结果&#xff0c;即在许多网络参与者之间分配信任。通过利用许多不同的数据源并实施不受单个实体控制的预言机系统&#xff0c;去中心化的预言机网络有可能为智能合…

Java集合-Collections与Arrays

Collections与Arrays 集合框架中的工具类&#xff1a;特点&#xff1a;该工具类中的方法都是静态的。 Collections&#xff1a;常见方法&#xff1a; 对list进行二分查找&#xff1a;前提该集合一定要有序。 int binarySearch(list,key); //必须根据元素自然顺序对列表进行升级…

阿里云优惠券使用方法图解_优惠券免费领取入口

2024年最新阿里云优惠代金券领取入口&#xff0c;阿里云服务器优惠代金券、域名代金券&#xff0c;在领券中心可以领取当前最新可用的满减代金券&#xff0c;阿里云百科aliyunbaike.com分享阿里云服务器代金券、领券中心、域名代金券领取、代金券查询及使用方法&#xff0c;可以…

第11章 数据仓库和数据智能知识点梳理

第11章 数据仓库和数据智能知识点梳理&#xff08;附带页码&#xff09; ◼ 数据仓库&#xff08;Data Warehouse&#xff0c;DW&#xff09;&#xff1a;始于 20 世纪 80 年代&#xff0c;发展于 20 世纪 90 年代&#xff0c;后与商务智能&#xff08;Business Inteligence,BI…

jenkins下载安装(mac)

下载官网 直接命令安装 Sample commands: Install the latest LTS version: brew install jenkins-ltsStart the Jenkins service: brew services start jenkins-ltsRestart the Jenkins service: brew services restart jenkins-ltsUpdate the Jenkins version: brew upgrade …

【Javascript】数据类型检测

文章目录 一、typeof1、描述2、示例 二、instanceof1、语法2、示例 三、Object.prototype.toString.call()1、描述2、语法3、示例4、通用判断方法 在JavaScript中&#xff0c;你可以用不同的方式检测数据类型。这是因为JavaScript是一种弱类型或动态语言&#xff0c;变量没有预…

Linux 安装KVM虚拟机

什么是KVM虚拟机&#xff1f; KVM 是 Kernel-based Virtual Machine 的缩写&#xff0c;是一种用于虚拟化的开源硬件虚拟化技术。它使用 Linux 内核的虚拟化模块&#xff0c;将物理服务器划分为多个虚拟机。KVM 允许虚拟机直接访问物理硬件资源,从而提供出色的性能和稳定性,同…

WARNING: No swap limit support——查看docker状态时提示警告

环境&#xff1a;Ubuntu 20.04 1、警告详情 执行命令 service docker status如下图 2、解决办法 2.1 修改文件 执行命令 vim /etc/default/grub在GRUB_CMDLINE_LINUX中追加cgroup_enablememory swapaccount1&#xff0c;如下&#xff1a; # If you change this file…

MyBatis 面试题(四)

1. MyBatis 中 Mapper 接口的实现原理是? MyBatis 中 Mapper 接口的实现原理主要基于 Java 的动态代理和反射机制。以下是 Mapper 接口实现原理的详细解释&#xff1a; Mapper 接口定义&#xff1a;首先&#xff0c;开发者需要定义一个 Mapper 接口&#xff0c;该接口中声明了…

【六】fastapi+vue前后端分离项目

前端代码 https://gitee.com/feiminjie/helloworldfront 后端代码 https://gitee.com/feiminjie/helloworld 整体效果 首页 用例管理页 用例详情页

GPT 浅析

GPT 浅析 文章目录 GPT 浅析GPT 1无监督预训练有监督微调任务相关的输入变换 GPT2GPT3 GPT 1 在模型架构上&#xff0c;GPT-1基于Transformer构造&#xff0c;这是因为与其他卷积神经网 络或者循环神经网络相比&#xff0c;Transformer提供了效率更高的方法来处理文本 中的长期…

几年前删除的照片如何恢复?5步操作,快速找回iPhone照片

“去年三月份参加了社区的志愿者活动拍了好几张照片&#xff0c;近期学校组织我申报市级优秀学生需要我的参加志愿者的照片当材料&#xff0c;但是照片在一年前就删掉了。删除的时间比较久&#xff0c;各位有没有什么方法可以恢复苹果手机的照片&#xff1f;” 在使用苹果手机的…