拷贝和替换算法操作指南
2021/8/28 14:36:15
本文主要是介绍拷贝和替换算法操作指南,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#include <iostream> using namespace std; #include <algorithm> #include <vector> void myprint3(int val) { cout << val << " "; } //一、replace /* replace(iterator beg, iterator end, oldvalue, newvalue); 将容器内指定范围的旧元素修改为新元素 beg开始迭代器 end结束迭代器 oldvalue旧元素 newvalue新元素 */ void t0001() { vector<int> v; v.push_back(20); v.push_back(50); v.push_back(60); v.push_back(20); v.push_back(20); v.push_back(20); v.push_back(40); v.push_back(20); cout << "替换前" << endl; for_each(v.begin(), v.end(), myprint3); cout << endl; replace(v.begin(), v.end(), 20, 2000); cout << "替换后" << endl; for_each(v.begin(), v.end(), myprint3); } //二、replace_if /* replace_if(iterator beg, iterator end, _pred, newvalue) 将容器内指定范围满足条件的元素修改为新元素 beg开始迭代器 end结束迭代器 _pred条件谓词 newvalue新元素 */ class compare { public: bool operator()(int val) { return val > 50; } }; void t0002() { vector<int> v; v.push_back(20); v.push_back(50); v.push_back(60); v.push_back(20); v.push_back(20); v.push_back(20); v.push_back(40); v.push_back(20); cout << "替换前" << endl; for_each(v.begin(), v.end(), myprint3); cout << endl; replace_if(v.begin(), v.end(), compare(), 2000); cout << "替换后" << endl; for_each(v.begin(), v.end(), myprint3); } //三、swap /* swap(container c1, container c2); 互换两个同类型的容器的元素 */ void t0003() { vector<int> v1; vector<int> v2; for (int i = 0; i < 10; i++) { v1.push_back(i); } for (int i = 0; i < 100; i++) { v2.push_back(i + 100); } for_each(v1.begin(), v1.end(), myprint3); cout << endl; swap(v1, v2);//这个就不需要提前分配空间了 for_each(v1.begin(), v1.end(), myprint3); } //四、copy /* copy(iterator beg, iterator end, iterator dest); beg开始迭代器 end结束迭代器 dest目标起始迭代器 */ void t0004() { vector<int> v1; vector<int> v2; for (int i = 0; i < 10; i++) { v1.push_back(i); } v2.resize(v1.size());//提前给目标容器开辟空间 copy(v1.begin(), v1.end(), v2.begin()); for_each(v2.begin(), v2.end(), myprint3); } int main_copy() { t0003(); return 0; }
------------恢复内容结束------------
这篇关于拷贝和替换算法操作指南的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24鸿蒙原生开发手记:03-元服务开发全流程(开发元服务,只需要看这一篇文章)
- 2024-11-24细说敏捷:敏捷四会之每日站会
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解