C++ 拷贝替换算法

🤔拷贝替换算法:

🙂1.copy  拷贝

在 C++ STL 中,copy()是一种常用的算法,用于将一个指定范围内的元素复制到目标位置中,不会改变原有序列的大小。

copy()的函数原型为:

template<class InputIt, class OutputIt>
OutputIt copy(InputIt first, InputIt last, OutputIt d_first);

📖其中,first 和 last 分别表示被复制序列的起始位置和结束位置d_first 表示目标序列的起始位置。

📖copy() 函数从源序列([first, last))中复制元素到目标序列([d_first, d_first+(last-first)))中。它返回目标序列中最后一个被写入元素的后继位置。

copy() 函数可以对标准数组、STL 容器等基本类型以及自定义类型进行操作。

🔍代码示例:

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
void print(int val)
{cout << val<<" ";
}
int main()
{vector<int>d1;for (int i = 0; i < 10; i++){d1.push_back(i);}vector<int>d2;d2.resize(10);copy(d1.begin(), d1.end(), d2.begin());cout << "拷贝后:";for_each(d2.begin(), d2.end(), print);
}

🔍运行结果:

🙂 2.replace   替换

在 C++ STL 中,replace()是一种常用的算法,用于在范围内以新值替换旧值。

replace()的函数原型为:

template<class ForwardIt, class T>
void replace(ForwardIt first, ForwardIt last, const T &old_value, const T &new_value);

📖replace() 函数将输入范围 first 至 last-1 中等于 old_value 的元素替换为 new_value

🔍代码示例:

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
void print(int val)
{cout << val << " ";
}
int main()
{vector<int>d1;d1.push_back(10);d1.push_back(20);d1.push_back(30);d1.push_back(40);d1.push_back(20);  d1.push_back(20);d1.push_back(30);d1.push_back(20);//替换所有的20为2000replace(d1.begin(),d1.end(),20 ,2000);cout << "替换后";for_each(d1.begin(), d1.end(), print);
}

🔍 运行结果:

🙂 3.replace_if    按条件替换

在 C++ STL 中,replace_if 是一种常用的算法,用于在指定的范围内以新值替换符合特定判定条件的值

replace_if  的函数原型为:

template<class ForwardIt, class UnaryPredicate, class T>
void replace_if(ForwardIt first, ForwardIt last, UnaryPredicate p, const T &new_value);

📖first  last 分别表示需要替换的序列的起始位置和结束位置p 是一个一元谓词(即接受一个参数并返回 bool 值的函数),用于判断每个元素是否需要被替换;new_value 表示新值。

📖replace_if() 函数将输入范围 first 至 last-1 中满足 p 判定条件的元素替换为 new_value

🔍代码示例:

我们把比30大的元素都替换为2000.

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
class greater30
{
public:bool operator() (int val){if (val < 30){return false;}return true;}
};
void print(int val)
{cout << val << " ";
}
int main()
{vector<int>d1;d1.push_back(10);d1.push_back(20);d1.push_back(30);d1.push_back(40);d1.push_back(20);  d1.push_back(20);d1.push_back(30);d1.push_back(20);//替换所有的不符合条件的replace_if(d1.begin(),d1.end(),greater30(), 2000);cout << "替换后";for_each(d1.begin(), d1.end(), print);
}

🔍运行结果:

🙂 4.swap  交换

在 C++ STL 中,swap是一种常用的算法,用于交换两个对象的值,可以用于任何支持拷贝构造函数和赋值操作符的类型

swap的函数原型为:

template<class T>
void swap(T& a, T& b);

其中,a 和 b 分别表示需要交换的两个对象。

📖swap() 函数交换两个对象的值,不需要为对象分配新的内存空间。需要注意的是,对于大型对象,使用 swap() 函数比直接赋值更高效。

📖swap() 函数可以对任何支持拷贝构造函数和赋值操作符的类型进行操作,包括基本类型和自定义类型。

🔍代码示例:

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;void print(int val)
{cout << val << " ";
}
int main()
{vector<int>d1;vector<int>d2;d1.push_back(10);d1.push_back(20);d1.push_back(30);d1.push_back(40);d1.push_back(20);  d1.push_back(20);d1.push_back(30);d1.push_back(20);d2.push_back(100);cout << "交换前";cout << "d1:";for_each(d1.begin(), d1.end(), print);cout << endl;cout << "d2:";for_each(d2.begin(), d2.end(), print);cout << endl;cout << "交换后";swap(d1,d2);cout << "d1:";for_each(d1.begin(), d1.end(), print);cout << endl;cout << "d2:";for_each(d2.begin(), d2.end(), print);}

🔍运行结果:

 

🤔结束!

 

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

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

相关文章

.NET 8 Preview 4 发布

作者&#xff1a;Jon Douglas - Principal Program Manager, NuGet 翻译&#xff1a;Alan Wang 排版&#xff1a;Alan Wang 我们很高兴与大家分享在 .NET 8 预览版 4 中的所有新功能和改进&#xff01;这次发布是继预览版 3之后的更新。您将在这些月度发布中看到更多功能逐渐亮…

如何将过大的图片缩小直至能够在一张A4纸上打印出来

问题描述 本人需要打印一张腾讯会议参会人员列表截图&#xff08;.png&#xff09;以用于报销&#xff0c;但是人员列表截图过大如果直接打印在A4纸上会有缺失&#xff0c;需要缩小后再打印 解决方案 右击图片文件用”画图“打开&#xff1a; 点击左上角”打印预览“&#x…

打印缩放怎么设置,去哪里打印可以调整打印格式

很多打印的店铺大多数打印资料&#xff0c;都是根据打印者发来的资料进行打印的&#xff0c;如果想要缩印的话需要打印者提前调整好格式后进行打印&#xff0c;但是很多人不知道怎么将打印的资料进行缩小&#xff0c;去哪里打印可以调整打印格式呢&#xff1f; 对于经常备考的…

PDF表格文档打印时缩放与居中解决方案

网上下载的pdf表格文档有时是被缩小且不居中的&#xff0c;打印的时候要填充整个页面&#xff0c;具体操作步骤如下&#xff1a; 一&#xff1a;首先安装PDF阅读软件&#xff0c;比如我安装的是Acrobat Reader DC 然后打开PDF表格文档&#xff0c;这是原文件。 二、如图所示&a…

3D打印gcode命令大全及解析

*G0&#xff1a;快速移动 *G1&#xff1a;控制移动 坐标轴XYZE移动控制&#xff08;G0和G1一样&#xff09; 例子&#xff1a;G0 F2000 X30 Y30 Z30 E3 *G2&#xff1a;顺时针画弧 *G3&#xff1a;逆时针画弧 此命令有两种形式&#xff1a;IJ-form和R-form。I指定了X偏移…

使用C#更改打印机驱动打印属性设置

更多源码参考&#xff0c;可参考本人csdn下载空间(http://download.csdn.net/detail/kingmax54212008/9881707)。或联系本人&#xff1a;kingmax5421gmail.com 介绍 为应用程序打印MS Word文档&#xff0c;并且应该给用户一个选项来更改他/她想要打印的文档的打印机设置&#x…

A4纸张缩印怎么只打印一半A4纸的内容

A4纸张的规格:210mmx297mm&#xff08;参考文章2&#xff09; 21cmx29.7cm A4纸张一半的长度 差不多 是 15cm&#xff0c;如下图所示&#xff0c;设置 页边距。打印即可 参考文章&#xff1a; 1. world文档怎么缩印&#xff08;如何打小抄&#xff09; 2.A4纸 3. 4.

计算机图桌面打印出来,电脑excel图片无法打印怎么处理

电脑excel图片无法打印怎么处理 excel是我们常用的数据编辑工具但是当我们需要打印的时候有可能出现图片无法打印的情况继续编就教大家怎么处理 具体如下: 1. 首先我们在桌面上找到需要进行处理的excel图标点击打开 2. 进入到表格界面之后我们点击表格最上方的打印预览图标然后…

关于windows XP下北洋BTP-2200E打印设置问题

&#xff08;1&#xff09;操作使用手册&#xff1a;http://www.chongshang.com.cn/manual/m_BTP2200E.shtml &#xff08;2&#xff09;驱动安装&#xff1a;http://www.chongshang.com.cn/news/view.asp?id397 &#xff08;3&#xff09;纸张设置&#xff1a; 1.打印机属性…

PPT缩印指南

PPT的讲义打印模式&#xff0c;虽然能把几张PPT打印在1页。但其实是个中看不中用的功能&#xff0c;因为各个页面间的间隔是无法消除的。为此还纠结了很长时间。 其实甩开打印讲义的功能&#xff0c;用普通的缩印方式就可以实现无间隔的缩印输出。 据说有个fineprint的软件可…

UNIX网络编程卷一 学习笔记 第十七章 ioctl操作

ioctl函数传统上一直作为那些不适合归入现有已定义类别的特性的系统接口。POSIX正在通过创建特定的包装函数来代替ioctl函数的某些功能&#xff0c;以取而代之的是那些已被POSIX标准化的函数。例如&#xff0c;Unix终端接口传统上使用ioctl函数访问&#xff0c;而POSIX为终端创…

wps,word缩印怎么设置

目录 wps&#xff0c;word缩印怎么设置 宋体 字号5&#xff08;注意&#xff1a;非五号字&#xff09;字体缩放80&#xff05;&#xff0c;字体间距-2 分为4栏 wps&#xff0c;word缩印怎么设置 宋体 字号5&#xff08;注意&#xff1a;非五号字&#xff09;字体缩放80&am…

缩印技巧你知多少?缩印怎么设置?

当打印word文档或者Excel表格时&#xff0c;如果花费很多时间去编辑格式&#xff0c;又或者需要把内容尽可能花最少的纸张页数打印出来&#xff0c;那么&#xff0c;有什么办法可以快速打印出来呢&#xff1f;缩印就可以帮到忙&#xff0c;缩印怎么设置&#xff1f;小编整理了w…

手机常识汇总

目录 一、手机历史介绍 第一代模拟制式手机(1G) 什么是模拟网? 模拟网络与数字网络的区别 数字通信与模拟通信相比具有明显的优点: 第二代数字手机(2G) 什么是“GSM” 什么是 “CDMA”? GSM 数字机和模拟手机话音相比 什么是“GSM/CDMA 双模机”? 什么是“TDMA”…

chatgpt赋能python:Python中的绝对值函数

Python中的绝对值函数 在Python编程语言中&#xff0c;绝对值函数是一个非常重要和常用的函数。它可以帮助我们快速地计算一个数的绝对值&#xff0c;而不需要手动使用if语句来处理。在本文中&#xff0c;我们将介绍Python中的绝对值函数&#xff0c;并且讨论它的一些应用。 …

微信H5页面点击直接跳转app-微信开放标签

开发微信H5项目时&#xff0c;需要从h5直接跳转至app&#xff0c;绞尽脑汁调研一番后&#xff0c;发现微信开放标签能实现&#xff0c;but 环境配置和测试流程真的很复杂&#xff0c;真的配置四小时&#xff0c;开发仅需30分钟&#xff0c;经过不断踩坑终于上线&#xff0c;踩过…

微信浏览器跳转app解决方案

微信浏览器跳转app解决方案 新版本微信浏览器中&#xff0c;已禁用打开其他APP应用&#xff0c;只支持打开微信合作商 APP应用&#xff0c;所以无法通过微信浏览器直接唤醒其他APP应用。列举微信浏览器唤醒APP的2种解决方案&#xff1a; 方案一&#xff1a;通过Url 跳转到H5…

uniapp 微信授权,微信分享,微信支付,微信跳转app集成

更新提示 &#xff01;&#xff01;&#xff01;&#xff01; 更新提示 &#xff01;&#xff01;&#xff01;&#xff01; 更新提示 &#xff01;&#xff01;&#xff01;&#xff01; 在7.12号微信推出不能强制获取用户信息才能使用。再授权之前得明确告知用户。经过我的…

如何将两个微信小程序合并_微信小程序--如何在两个页面之间传值

先看一下本周的部分的设计图 在这里插入图片描述 在这里插入图片描述

注意力机制

注意力机制&#xff1a;我们会把我们的焦点聚焦在比较重要的事物上。 对于一个模型而言&#xff08;CNN、LSTM&#xff09;&#xff0c;很难决定什么是重要的&#xff0c;什么是不重要的&#xff0c;由此注意力机制诞生了。 对于一张热力图而言&#xff0c;我们不难发现人类的…