当前位置: 首页 > article >正文

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

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

在这里插入图片描述

copy

在这里插入图片描述

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

void Myptint(int val)
{
	cout << val << " ";
}

void test()
{
	vector<int> v;
	for (int i = 0; i < 10; i++)
	{
		v.push_back(i);
	}
	vector<int>v2;
	v2.resize(v.size());
	copy(v.begin(), v.end(), v2.begin());
	for_each(v2.begin(), v2.end(), Myptint);
	cout << endl;
}

int main()
{
	test();
	system("pause");
	return 0;
}

在这里插入图片描述

replace

在这里插入图片描述

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

void Myptint(int val)
{
	cout << val << " ";
}

void test()
{
	vector<int> v;
	v.push_back(10);
	v.push_back(30);
	v.push_back(50);
	v.push_back(20);
	cout << "替换前" << endl;
	for_each(v.begin(), v.end(), Myptint);
	cout << endl;

	//将50替换为500
	replace(v.begin(), v.end(), 50, 500);
	cout << "替换后" << endl;
	for_each(v.begin(), v.end(), Myptint);
	cout << endl;

}

int main()
{
	test();
	system("pause");
	return 0;
}

在这里插入图片描述
在这里插入图片描述

replace_if

在这里插入图片描述

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

void Myptint(int val)
{
	cout << val << " ";
}

class Greater30
{
public:
	bool operator()(int val)
	{
		return val >= 30;
	}
};

void test()
{
	vector<int> v;
	v.push_back(10);
	v.push_back(30);
	v.push_back(50);
	v.push_back(20);
	cout << "替换前" << endl;
	for_each(v.begin(), v.end(), Myptint);
	cout << endl;

	//将大于等于30替换为500
	replace_if(v.begin(), v.end(), Greater30(), 500);
	cout << "替换后" << endl;
	for_each(v.begin(), v.end(), Myptint);
	cout << endl;

}

int main()
{
	test();
	system("pause");
	return 0;
}

在这里插入图片描述
在这里插入图片描述

swap

在这里插入图片描述

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

void Myptint(int val)
{
	cout << val << " ";
}


void test()
{
	vector<int> v;
	vector<int>v2;
	for (int i = 0; i < 10; i++)
	{
		v.push_back(i);
		v2.push_back(i + 10);
	}
	cout << "交换前" << endl;
	for_each(v.begin(), v.end(), Myptint);
	cout << endl;
	for_each(v2.begin(), v2.end(), Myptint);
	cout << endl;

	swap(v, v2);
	cout << "交换后" << endl;
	for_each(v.begin(), v.end(), Myptint);
	cout << endl;
	for_each(v2.begin(), v2.end(), Myptint);
	cout << endl;
}

int main()
{
	test();
	system("pause");
	return 0;
}

在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/a/147107.html

相关文章:

  • 在arm64架构下, Ubuntu 18.04.5 LTS 用命令安装和卸载qt4、qt5
  • 【汇编】c++游戏开发
  • 爬虫——Requests库的使用
  • 【流量分析】常见webshell流量分析
  • 【Fargo】23:采集时间转rtp时间
  • Essential Cell Biology--Fifth Edition--Chapter one (8)
  • 蓝桥杯day01——根据给定数字划分数组
  • 第二节HarmonyOS DevEco Studio创建项目以及界面认识
  • Android系统源码中,在手上没有源码的情况下,需要将编译好的二进制可执行文件放入系统中
  • Python基于机器学习模型LightGBM进行水电站流量入库预测项目源码+数据集+模型,含项目报告
  • 开源与闭源:数字时代大模型之辩
  • ArcGis如何用点连线?
  • 持续集成部署-k8s-高级调度-CronJob:定时任务的应用
  • linux的netstat命令和ss命令
  • 【Mysql】【DB】【sql】提高数据库搜索性能的经验
  • Nginx Openresty通过Lua+Redis 实现动态封禁IP
  • 好用的基于layui的免费开源后台模版layuimini
  • Windows系统下更新后自带的画图软件出现马赛克bug
  • Linux:通过VMWare,定制化Linux系统
  • 6.2 Windows驱动开发:内核枚举SSSDT表基址
  • 功率整流器的作用是什么?SURS8340T3G车规级功率整流器的介绍
  • 封装进度条onUploadProgress+axios取消请求的上传组件
  • sqli-labs靶场详解(less17-less22)
  • LabVIEWL实现鸟巢等大型结构健康监测
  • Django QuerySet.order_by SQL注入漏洞(CVE-2021-35042)
  • vue3 解决各场景 loading过度-5中方法