【C++】常用拷贝算法和替换算法
#include<iostream>
using namespace std;
#include<algorithm>
#include<vector>
//常用拷贝和替换算法copyvoid myPrint(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;}int main() {test01();system("pause");return 0;
}
//总结:利用copy算法在拷贝时,目标容器记得提前开辟空间
#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>
//常用拷贝和替换算法replaceclass MyPrint
{public:void operator()(int val){cout << val << " ";}
};void test01()
{vector<int>v;v.push_back(20);v.push_back(30);v.push_back(50);v.push_back(30);v.push_back(40);v.push_back(20);v.push_back(10);v.push_back(20);cout << "替换前:" << endl;for_each(v.begin(), v.end(), MyPrint());cout << endl;//将20替换成2000replace(v.begin(), v.end(), 20, 2000);cout << "替换后:" << endl;for_each(v.begin(), v.end(), MyPrint());cout << endl;
}int main() {test01();system("pause");return 0;
}
#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>class MyPrint
{public:void operator()(int val){cout << val << " ";}
};class Greater30
{public:bool operator()(int val){return val >= 30;}
};//常用拷贝和替换算法 replace_if
void test01()
{vector<int>v;v.push_back(10);v.push_back(40);v.push_back(20);v.push_back(40);v.push_back(30);v.push_back(50);v.push_back(20);v.push_back(30);cout << "替换前:" << endl;for_each(v.begin(), v.end(), MyPrint());cout << endl;//将大于等于30 替换为 3000replace_if(v.begin(), v.end(), Greater30(), 3000);cout << "替换后:" << endl;for_each(v.begin(), v.end(), MyPrint());cout << endl;
}int main() {test01();system("pause");return 0;
}
//replace_if按条件查找,可以利用仿函数灵活筛选满足的条件
#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>
//常用拷贝和替换算法swapvoid 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 + 100);}cout << "交换前:" << endl;for_each(v1.begin(), v1.end(), myPrint);cout << endl;for_each(v2.begin(), v2.end(), myPrint);cout << endl; cout << "--------------------" << endl;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();system("pause");return 0;
}
//总结:swap交换容器时,注意交换的容器要同种类型
【C++】常用拷贝算法和替换算法相关推荐
- C++STL常用拷贝和替换算法
C++STL常用集合算法 学习目标 算法简介 copy 功能描述 函数原型 示例 总结 replace 功能描述 函数原型 示例 总结 replace_if 功能描述 函数原型 示例 总结 swap ...
- java实现apriori算法_七大经典、常用排序算法的原理、Java 实现以及算法分析
0. 前言 大家好,我是多选参数的程序员,一个正再 neng 操作系统.学数据结构和算法以及 Java 的硬核菜鸡.数据结构和算法是我准备新开的坑,主要是因为自己再这块确实很弱,需要大补(残废了一般) ...
- 实现游戏后处理6大常用模糊算法
游戏后处理6大常用模糊算法 模糊算法介绍 BoxBlur均值模糊 多次迭代 降低采样进行采样-优化 9次采样BoxBlur 高斯模糊 双重模糊技术(Dual Blur) Kawase模糊(Kawase ...
- 回归算法分类,常用回归算法解析
回归算法分类,常用回归算法解析 回归是数学建模.分类和预测中最古老但功能非常强大的工具之一.回归在工程.物理学.生物学.金融.社会科学等各个领域都有应用,是数据科学家常用的基本工具. 回归通常是机器学 ...
- ACM 中常用的算法有哪些?
在网上看到别人ACM学习的心得,转载过来,源地址不记得了,当时是百度的.内容如下: 网络上流传的答案有很多,估计提问者也曾经去网上搜过.所以根据自己微薄的经验提点看法. 我ACM初期是训练编码能力,以 ...
- 常用排序算法对比(时间复杂度、稳定性)
常用排序算法对比
- 数字图像处理中常用图像分割算法有哪些?
数字图像处理中常用图像分割算法有哪些? 1.多数的图像分割算法 2.图像边缘分割 3.图像阈值分割 4.基于区域的分割 5.形态学分水岭算法 多数的图像分割算法 均是基于灰度值的不连续和相似的性质.在 ...
- Spark中常用的算法
Spark中常用的算法: 3.2.1 分类算法 分类算法属于监督式学习,使用类标签已知的样本建立一个分类函数或分类模型,应用分类模型,能把数据库中的类标签未知的数据进行归类.分类在数据挖掘中是一项重要 ...
- 常用机器学习算法原理及推导
周末花半天多的时间整理了一下常用机器学习算法的原理及推导,分享出来给大家. 线性回归和逻辑回归 支持向量机(这个貌似工作中不怎么用,就用了之前的笔记) 决策树和随机森林 GBDT Xgboost和Li ...
- 视觉直观感受7种常用排序算法
视觉直观感受若干常用排序算法 1 快速排序 介绍: 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状 ...
最新文章
- conda env环境配置
- c#中 uint--byte[]--char[]--string相互转换汇总
- 北京有个可以躺的酒吧——床吧(BED)
- instanceof 的运用
- AppScan api登录接口 postman_【Postman】12 Postman monitor功能使用
- identifier __ldg is undefined
- In Compiler.php line 36: Please provide a valid cache path.
- Leecode刷题热题HOT100(2)——两数相加
- 基于MySQL的调度系统_仓储调度系统的设计与实现(SSH,MySQL)
- git_day03_01——git远程仓库的使用
- 四、BDB JE学习(对java中内置对象的存储)
- maven向本土仓库导入jar包(处理官网没有的jar包)
- 阿里云短信验证码购教程(Java演示)
- 黑金开发板液晶显示图片
- 香港消委会:大部分航空公司超卖机票无赔偿细则
- 章节十六:编码和文件读写
- 2021-5-21-博弈论--金刚狼与小狗灰
- Flutter系列之TextField限制数字输入
- python图形用户界面page_Python+selenium使用PageObject实现UI自动化
- IPsec中IKE与ISAKMP过程分析(主模式-消息5和消息6)
热门文章
- 探索科学的奥秘之门Science,Cell, Nature
- 传智播客Java实现键盘数据的录入和if
- 永远不要低估自己,love your fear.
- Atitit 让maven pom.xml不编译 1.build 2. defaultGoalinstall/defaultGoal 3. directory${bas
- Atitit.nosql api 标准化 以及nosql数据库的实现模型分类差异
- paip.JAVA的优缺点相比C#.NET VC425
- paip.ASP加密新总结
- (转)人工智能的钟摆
- 关于机器智能,10问达摩院科学家金榕
- 全面Severless化只需7天!看南瓜电影的云上极速升级