C++ STL 常用拷贝和替换算法
C++ STL 常用拷贝和替换算法
copy() 复制
vector<int> vecIntA;
vecIntA.push_back(1);
vecIntA.push_back(3);
vecIntA.push_back(5);
vecIntA.push_back(7);
vecIntA.push_back(9);
vector<int> vecIntB;
vecIntB.resize(5); //扩大空间
copy(vecIntA.begin(), vecIntA.end(), vecIntB.begin()); //vecIntB: {1,3,5,7,9}
replace()
replace(beg,end,oldValue,newValue): 将指定范围内的所有等于oldValue的元素替 换成newValue。
vector<int> vecIntA;
vecIntA.push_back(1);
vecIntA.push_back(3);
vecIntA.push_back(5);
vecIntA.push_back(3);
vecIntA.push_back(9);
replace(vecIntA.begin(), vecIntA.end(), 3, 8); //{1,8,5,8,9}
replace_if()
replace_if : 将指定范围内所有操作结果为true的元素用新值替换。
用法举例:
replace_if(vecIntA.begin(),vecIntA.end(),GreaterThree,newVal)
其中 vecIntA是用vector<int>声明的容器
GreaterThree 函数的原型是 bool GreaterThree(int iNum)
//把大于等于3的元素替换成8
vector<int> vecIntA;
vecIntA.push_back(1);
vecIntA.push_back(3);
vecIntA.push_back(5);
vecIntA.push_back(3);
vecIntA.push_back(9);
replace_if(vecIntA.begin(), vecIntA.end(), GreaterThree, 8); // GreaterThree的定义在上面。
swap()
swap: 交换两个容器的元素
vector<int> vecIntA;
vecIntA.push_back(1);
vecIntA.push_back(3);
vecIntA.push_back(5);
vector<int> vecIntB;
vecIntB.push_back(2);
vecIntB.push_back(4);
swap(vecIntA, vecIntB); //交换
最新文章
- java基础 常用组件
- Combination Sum II
- asp.net教程:GridView导出到Excel或Word文件
- ArcGIS server开发之API for js 本地部署
- 2016古装动作喜剧《笨贼别跑》HD720P.国语中字
- UniversalAndroidImageLoader出现异常:ImageLoader: Unable to resolve host ";https";: No address associated with host
- CKPT进程工作机制
- [solr] - IKAnalyzer 分词加入
- javascript笔记——工作笔记
- Win7下的DragEnter、DragDrop事件不触发的解决方案
- Java基础知识强化之IO流笔记55:IO流练习之 自定义类模拟LineNumberReader的获取行号功能案例
- 注册一个比较大小Handlebars
- 解决Easyui1.3.3 IE8兼容性问题
- (64位oracle使用32位的PLSQL)安装64位的oracle数据库软件,使用32位的PLSQL Developer连接方法
- Druid源码阅读之连接池
- Pytorch系列教程-使用Seq2Seq网络和注意力机制进行机器翻译
- GIT初始学习记录
- AngularJs_自定义注入对象_笔记1
- 【WPF/C#】图层筛选/拾取——Color Picker
- WEB网页监控系统的设计框架思路具体解释