STL学习笔记12-拷贝和替换算法(copy,replace,replace_if,swap)

STL常用拷贝和替换算法 全部案例链接 https://download.youkuaiyun.com/download/weixin_45525272/12536637 常用拷贝和替换算法 copy算法 将容器内指定范围的元素拷贝到另一容器中 @param beg 容器开始迭代器 @param end 容器结束迭代器 @param dest 目标起始迭代器 copy(iterator beg, iterator end, iterator dest) replace算法 将容器内指定范围的旧元素修改为新元素 @param beg 容器开 阅读详情

15.4 常用拷贝和替换算法

算法简介:

  • copy //容器内指定元素拷贝到另一容器中
  • replace //将容器内指定范围的就元素修改为新元素
  • replace_if //容器内指定范围满足条件的元素替换为新元素
  • swap //互换两个容器的元素

15.4.1 copy拷贝算法

功能描述: 容器内指定元素拷贝到另一容器中

函数原型:

  • copy(iterator beg, iterator end, iterator dest);
    • beg 开始迭代器
    • end 结束迭代器
    • dest 目标迭代器

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

示例:

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

//容器内指定范围的元素拷贝到另一容器中

//打印
class MyPrint {
public:
	void operator()(int val) {
		cout << val << " ";
	}
};

void test01() {
	vector<int> v1;
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(3);
	v1.push_back(4);

	for_each(v1.begin(), v1.end(), MyPrint());
	cout << endl;
	vector<int> v2;
	//拷贝前需要开拓空间
	v2.resize(v1.size());
	//拷贝函数
	copy(v1.begin(), v1.end(), v2.begin());
	//拷贝后
	for_each(v2.begin(), v2.end(), MyPrint());
}

15.4.2 replace替换算法

功能描述: 将容器内只当范围的就元素修改为新元素

函数原型:

  • replace(iterator beg, iterator end, oldvalue, newvalue); //将区间内旧元素 替换成 新元素
    • beg 开始迭代器
    • end 结束迭代器
    • oldvalue 旧元素
    • newvalue 新元素

测试代码:

void test01() {
	vector<int> v;
	v.push_back(10);
	v.push_back(20);
	v.push_back(10);
	v.push_back(30);
	v.push_back(10);

	for_each(v.begin(), v.end(), myPrint);
	cout << endl;

	//注意:将所有的指定值10都替换成50
	replace(v.begin(), v.end(), 10, 50);

	for_each(v.begin(), v.end(), myPrint);
	cout << endl;
}

15.4.3 replace_if替换算法

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

函数原型:

  • replace_if(iterator beg, iterator end, _Pred, newvalue); //按条件替换元素,满足条件的替换成指定元素
    • beg 开始迭代器
    • end 结束迭代器
    • _Pred 谓词
    • newvalue 新元素

测试代码:

//将区间内满足条件的元素,替换成指定元素 replace_if

//谓词(小于6)
class Less6
{
public:
	bool operator()(int value)
	{
		return value < 6;
	}
};
//打印
void myPrint(int val) {
	cout << val << " ";
}

void test01() {
	vector<int> v;
	for (int i = 0; i < 10; i++) {
		v.push_back(i);
	}
	for_each(v.begin(), v.end(), myPrint);
	cout << endl;

	//将小于6的数全部替换为100
	replace_if(v.begin(), v.end(), Less6(), 100);

	for_each(v.begin(), v.end(), myPrint);
	cout << endl;

}

15.4.4 swap替换算法

功能描述: 互换两个容器的元素(两容器需为同一类型容器)

函数原型:

  • swap(container c1, container c2); //互换两个容器
    • c1 容器1
    • c2 容器2

示例:

//互换两个容器的元素 swap

//打印
class myPrint {
public:
	void operator()(int val) {
		cout << val << " ";
	}
};

void test01() {

	vector<int> v1;
	for (int i = 0; i < 10; ++i) {
		v1.push_back(i);
	}
	cout << "v1:";
	for_each(v1.begin(), v1.end(), myPrint());
	cout << endl;
	vector<int> v2;
	for (int i = 5; i > 0; --i) {
		v2.push_back(i);
	}
	cout << "v2:";
	for_each(v2.begin(), v2.end(), myPrint());
	cout << endl;

	//互换容器,v1,v2需为同一类型
	swap(v1, v2);

	cout << "互换容器后:" << endl;

	cout << "v1:";
	for_each(v1.begin(), v1.end(), myPrint());
	cout << endl;

	cout << "v2:";
	for_each(v2.begin(), v2.end(), myPrint());
	cout << endl;
}
C++STL常用拷贝和替换算法 学习目标: 掌握常用的拷贝和替换算法 算法简介: copy // 容器内指定范围的元素拷贝到另一容器中 replace // 将容器内指定范围的旧元素修改为新元素 replace_if // 容器内指定范围满足条件的元素替换为新元素 swap // 互换两个容器的元素 5.4.1 copy 功能描述: 容器内指定范围的元素拷贝到另一容器中 函数原型: copy(i 阅读详情

相关推荐

STL常用的拷贝和替换算法

copy() vector vecIntA; vecIntA.push_back(1); vecIntA.push_back(3); vecIntA.push_back(5); vecIntA.push_back(7); vecIntA.push_back(9); vector vecIntB; vecIntB.resize(5); //扩大空间 copy(vecIntA.begin(), vecIntA.end(), vecIntB.begin()); //vecIntB: {1,3,5,7,9} r

希望我的博客,能帮上你解决学习中工作中所遇到的问题 558

《C++ Primer》第10章 10.5节习题答案

《C++ Primer》第10章 泛型算法 10.5节泛型算法结构 习题答案 练习10.38:列出5个迭代器类别,以及每类迭代器所支持的操作。 【出题思路】理解5种迭代器及它们的差异。 【解答】 输入迭代器:只读,不写;单遍扫描,只能递增;还支持相等性判定运算符(==、!=)、解引用运算符(*)(只出现在赋值运算符右侧)和箭头运算符(->)。输出迭代器:只写,不读;单遍扫描,只能递增,支持解引用运算符(*)(只出现在赋值运算符左侧)。 前向迭代器:可读写;多遍扫描,只能递增,支持所有输入、

chenyijun的专栏 263

Xilinx FPGA 100G RDMA开发实战:基于AXI Lite配置的ROCE V2高速通信系统搭建

本文详细介绍了在Xilinx FPGA上搭建100G ROCE V2高速通信系统的实战过程。通过分析RDMA技术优势与FPGA实现的必要性,重点阐述了基于AXI Lite接口配置ERNIC IP核的关键步骤,包括硬件系统构建、驱动开发及与商用网卡的互通测试,旨在实现兼具高性能与灵活性的网络加速方案。

js777的博客 577

使用STL的copy

STL中的<algorithm>有copy和copy_n等函数,用于对数组和容器拷贝 用法是将对应的来源source和目的地destination的迭代器iterator,如果你使用的是copy_n还需要指定拷贝的长度count,将其逐一填入形参 如果是在Windows环境下,你还需要使用模板类stdext::checked_array_iterator来包装你的目标数组,它被包含...

AS588AS的博客 360

CATIA P3 V5-6R2023在Windows 11 23H2上的稳定安装与系统级配置指南

CATIA是高端制造业核心的三维参数化设计平台,其运行依赖严格的系统底层支撑。理解CATIA的BRep几何内核原理与Windows子系统(如WSL、Hyper-V)的协同机制,是保障建模稳定性与计算精度的技术前提。CATIA Run-Time Library和OpenGL硬件加速能力共同决定了曲面重建、螺纹建模等关键操作的可靠性;而.NET Framework 3.5、VC++ 2022运行库及显卡Studio驱动的精准匹配,则构成工业软件在Win11环境落地的工程基础。本文聚焦于航空、轨交、能源等领域高频

weixin_30983353的博客 639

HUMAnN 3.0 (alpha)安装及使用

文章目录简介安装数据库下载运行参考 简介 安装 conda install humann humann_test (~1 minute) 数据库下载 humann_databases --download chocophlan full /path/to/databases --update-config yes humann_databases --download uniref uniref90_diamond /path/to/databases --update-config yes humann_

dys的博客 9506

cppPrimer第十章习题

10.5 调用equal的例子中,若两个序列保存的都是C风格字符串而不是string会发生什么 C风格字符串是用指向字符的指针表示的,因此会比较这两个指针的值(地址),而不会比较这两个字符串的内容 10.7 下面程序是否有错误?如果有,请改正 void p10_7a() { vector<int> vec; list<int> lst; int i; while (cin >> i) lst.push_back(i); //意图:想要将lst中元素都拷贝到vec

qq_42120843的博客 226

ESP-SR实战:从零搭建智能语音唤醒与命令识别系统

本文详细介绍了如何利用乐鑫ESP-SR框架,从零开始搭建一个完整的离线智能语音交互系统。内容涵盖硬件选型(推荐ESP32-S3与数字麦克风)、开发环境配置(ESP-IDF与ESP-ADF),并深入解析了AFE声学前端、WakeNet唤醒词检测和MultiNet命令词识别三大核心模块的工作原理与实战配置。通过具体的代码示例和调试技巧,指导开发者快速实现高识别率的语音唤醒与命令控制功能。

weixin_29161785的博客 302

第九章(14):STL之常用拷贝和替换算法

常用替换和拷贝算法

weixin_72867798的博客 2331

能量机关 STM32HAL库开发大疆A板WS2812B彩灯(PWM+DMA)

本文主要目的是为了制作RoboMaster比赛能量机关的灯条控制,模拟比赛场中大符,搭建出类似场地道具,以供视觉测试 使用的是RoboMaster开发板A型,芯片为STM32F427IIH6,使用的灯条为WS2812B。 采用PWM+DMA控制,使用CUBEMX配置底层,keil5编辑烧录代码 实现:一共五片扇叶,每片扇叶均实现流水灯+常亮颜色 参考文章在后面会标记出来

m0_51756449的博客 4292

【unity游戏开发入门到精通——通用篇】Post Processing 后处理插件Post-process Volume 和 Volume最全基础使用说明

之前我已经实现了不少后处理功能,本文其实就是将他们归类整理,以便更好的查找和理解。在Unity中,后处理(Post-Processing)是在相机所捕捉的图像上应用一些特殊效果的过程,后处理会让图像视觉效果更好(前提是做的好)。这些效果的范围有非常细微的颜色调整,也包括整体的美术风格的大修,可以让场景看起来更加真实或风格化,或者只是变得更好看。就像我们都会用手机拍照,但很多时候我们拍的原始的相片都打不到我们想要的效果。比如照片可能亮度不够,颜色不饱和或者对比度不好等。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 7899

C++之STL的algorithm(4)之拷贝相关算法(copy、replace、swap)整理

STL的algorithm之拷贝相关算法(copy、replace、swap)整理

ULTRAmanTAROACE的博客 924

windows 10 等保3级配置核查与加固(附自动化加固脚本)

关闭注册表编辑器,然后重新启动计算机。\\r\\n 对于OPC通讯站(server\\\\client),【密码最长存留期】需要设置为0,即密码不过期。‌445端口‌:修改注册表禁用。打开命令提示符,运行命令“gpedit.msc”打开组策略编辑器,浏览到路径“本地计算机策略\\\\计算机配置\\\\Windows设置\\\\安全设置\\\\本地策略\\\\安全选项”,在右边窗格中找到“Microsoft网络客户端:将未加密的密码发送到第三方SMB服务器”,双击,配置为“已禁用”,确定。

悦分享 160

常用拷贝和替换算法 copy() replace() replace_if() swap()

>1.copy() //用于拷贝一个容器到另一个容器 >2.replace() //将容器中的数进行替换 >3.replace_if() //将容器中符合条件的数进行替换 >4.swap() //将两个容器中数据进行互换

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 940

Python实战:打造学生信息管理系统

通过本教程,我们构建了一个简单的学生信息管理系统,实现了基本的添加、删除、修改和查询功能。当然,这个系统还有很多可以改进和扩展的地方,比如添加用户界面、增加数据持久化功能、支持批量操作等。简介:本文将介绍如何使用Python编写一个功能齐全的学生信息管理系统,包括添加、删除、修改和查询学生信息的基本操作。学生信息管理系统是学校日常管理中不可或缺的一部分,它能够帮助管理人员快速、准确地管理学生信息,提高工作效率。为了实现上述功能,我们可以设计一个包含学生信息的字典,并使用函数来封装各个操作。

铭渊老黄 1492

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

C++ STL(十五):常用拷贝算法(copy)和替换算法(replace、replace_if、swap)

文章目录0 常用拷贝【copy】和替换【replace、replace_if、swap】算法简介1 copy【拷贝容器元素至另一容器】2 replace【将指定值全部替换为新值】3 replace_if【将满足指定条件的元素全部替换为新元素】4 swap【互换两个同类型容器的元素】 0 常用拷贝【copy】和替换【replace、replace_if、swap】算法简介 算法简介: copy:拷贝容器元素至另一容器。 replace:将容器内的指定值全部替换为新值。 replace_if:按条件将容器内指

NewsomTech 1265

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【C++提高编程-10】----C++ STL常用拷贝和替换算法

STL(Standard Template Library)是C++标准库的一部分,提供了丰富的数据结构和算法,用于处理数据和实现常见的计算任务。STL中的算法分为几类,包括遍历算法、修改算法、排序算法、查找算法、数值算法等,每类算法都有其特定的应用场景和功能。

一伦明悦的博客 1113

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

STL学习(十、常用排序、拷贝、替换算法)

public:v.push_back(Person("张三", 10));v.push_back(Person("李四", 20));v.push_back(Person("王五", 30));cout << "排序前" << endl;cout << "排序后" << endl;return 0;

qq_62737390的博客 500

C++提高编程(五)—— STL常用算法(4) :常用拷贝和替换算法

4. 常用拷贝和替换算法4.1 copy4.2 replace4.3 replace_if4.4 swap 4. 常用拷贝和替换算法   学习目标: 掌握常用的拷贝和替换算法。   算法简介: copy    // 容器内指定范围的元素拷贝到另一容器中 replace    // 将容器内指定范围的旧元素修改为新元素 replace_if    // 容器内指定范围满足条件的元素替换为新元素 swap  .

大彤小忆的博客 3357

STL算法——常用拷贝和替换算法(copy、replace、replace_if、swap)

算法简介:功能描述:函数原型:示例: 5.4.2 replace 功能描述:函数原型:示例: 5.4.3 replace_if 功能描述:函数原型:示例: 5.4.4 swap 功能描述:函数原型:示例:

crisp077的博客 570

STL常用算法——拷贝和替换算法

replace_if()函数:将容器区间内所有满足条件的元素替换成指定元素。replace()函数:用新的值来替换容器内和给定值相匹配的元素。copy()函数:将源容器内指定范围的元素拷贝到目的容器中。copy_n():从源容器中复制指定个数的元素到目的容器中。swap()函数:交换两个容器中的元素。交换的容器必须是同种类型。

万里顾一程的博客 855

C++ STL 之常用拷贝和替换算法①copy();②replace();③replace_if();④swap();

C++ STL 之常用拷贝和替换算法①copy();②replace();③replace_if();④swap();

weixin_45925859的博客 467

C++ STL:常用拷贝算法和替换算法

c++的复制算法和替换算法

wangmengmeng99的博客 657

STL中常用拷贝和替换算法

C++中的常用拷贝和替换算法

Bruce 696

STL-常用拷贝和替换算法

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

qq_44729609的博客 435

【C++编程语言】之STL常用算法之 拷贝和替换算法 copy()函数 replace()函数 replace_if()函数 swap()函数

1.常用拷贝和替换算法 2.copy 将容器指定范围的元素拷贝到另一容器中 2.replace 将指定容器内指定范围的旧元素修改为新元素 3.replace_if 将区间内满足条件的元素,替换成指定元素 4.swap 互换两个容器的元素

kaszxc的博客 525
上一篇: STL学习笔记11-排序算法(sort,random_suffle,merge,reverse)
下一篇: STL学习笔记13-算术生成算法(accumulate,fill)
SMH_壹壹贰
博客等级 码龄7年 17粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值