STL常用拷贝和替换算法
2021/6/10 22:22:47
本文主要是介绍STL常用拷贝和替换算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
全部案例链接https://download.csdn.net/download/weixin_45525272/12536637
copy算法 将容器内指定范围的元素拷贝到另一容器中
@param beg 容器开始迭代器 @param end 容器结束迭代器 @param dest 目标起始迭代器
copy(iterator beg, iterator end, iterator dest)
replace算法 将容器内指定范围的旧元素修改为新元素
@param beg 容器开始迭代器 @param end 容器结束迭代器 @param oldvalue 旧元素 @param oldvalue 新元素
replace(iterator beg, iterator end, oldvalue, newvalue)
replace_if算法 将容器内指定范围满足条件的元素替换为新元素
@param beg 容器开始迭代器 @param end 容器结束迭代器 @param callback函数回调或者谓词(返回Bool类型的函数对象) @param oldvalue 新元素
replace_if(iterator beg, iterator end, _callback, newvalue)
swap算法 互换两个容器的元素
@param c1容器1 @param c2容器2
swap(container c1, container c2)代码案例
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include <vector> #include <algorithm> #include <iterator> using namespace std; /* copy算法 将容器内指定范围的元素拷贝到另一容器中 @param beg 容器开始迭代器 @param end 容器结束迭代器 @param dest 目标起始迭代器 */ void test01() { vector<int>v; for (int i = 0; i < 10; i++) { v.push_back(i); } vector<int>vTarget; vTarget.resize(v.size()); copy(v.begin(), v.end(), vTarget.begin()); //for_each(vTarget.begin(), vTarget.end(), [](int val){ cout << val << " "; }); copy(vTarget.begin(), vTarget.end(), ostream_iterator<int>(cout, " ")); } /* replace算法 将容器内指定范围的旧元素修改为新元素 @param beg 容器开始迭代器 @param end 容器结束迭代器 @param oldvalue 旧元素 @param oldvalue 新元素 replace_if算法 将容器内指定范围满足条件的元素替换为新元素 @param beg 容器开始迭代器 @param end 容器结束迭代器 @param callback函数回调或者谓词(返回Bool类型的函数对象) @param oldvalue 新元素 */ class MyCompare { public: bool operator()(int v) { return v > 3; } }; void test02() { vector<int>v; for (int i = 0; i < 10; i++) { v.push_back(i); } //需求 把容器中的3 替换成300 replace(v.begin(), v.end(), 3, 300); copy(v.begin(), v.end(), ostream_iterator<int>(cout, " ")); cout << endl; //需求 把容器中所有大于3的数字 都替换成 30000 replace_if(v.begin(), v.end(), MyCompare(), 30000); copy(v.begin(), v.end(), ostream_iterator<int>(cout, " ")); } /* swap算法 互换两个容器的元素 @param c1容器1 @param c2容器2 */ void test03() { vector<int>v1; for (int i = 0; i < 10; i++) { v1.push_back(i); } vector<int>v2; v2.push_back(10); v2.push_back(30); v2.push_back(20); v2.push_back(40); cout << "交换前数据:" << endl; copy(v1.begin(), v1.end(), ostream_iterator<int>(cout, " ")); cout << endl; copy(v2.begin(), v2.end(), ostream_iterator<int>(cout, " ")); cout << endl; cout << "交换后的数据:" << endl; swap(v1, v2); copy(v1.begin(), v1.end(), ostream_iterator<int>(cout, " ")); cout << endl; copy(v2.begin(), v2.end(), ostream_iterator<int>(cout, " ")); cout << endl; } int main(){ //test01(); //test02(); test03(); system("pause"); return EXIT_SUCCESS; }
这篇关于STL常用拷贝和替换算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 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对接阿里云智能语音服务入门详解