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); //交换

最新文章

  1. java基础 常用组件
  2. Combination Sum II
  3. asp.net教程:GridView导出到Excel或Word文件
  4. ArcGIS server开发之API for js 本地部署
  5. 2016古装动作喜剧《笨贼别跑》HD720P.国语中字
  6. UniversalAndroidImageLoader出现异常:ImageLoader: Unable to resolve host &quot;https&quot;: No address associated with host
  7. CKPT进程工作机制
  8. [solr] - IKAnalyzer 分词加入
  9. javascript笔记——工作笔记
  10. Win7下的DragEnter、DragDrop事件不触发的解决方案
  11. Java基础知识强化之IO流笔记55:IO流练习之 自定义类模拟LineNumberReader的获取行号功能案例
  12. 注册一个比较大小Handlebars
  13. 解决Easyui1.3.3 IE8兼容性问题
  14. (64位oracle使用32位的PLSQL)安装64位的oracle数据库软件,使用32位的PLSQL Developer连接方法
  15. Druid源码阅读之连接池
  16. Pytorch系列教程-使用Seq2Seq网络和注意力机制进行机器翻译
  17. GIT初始学习记录
  18. AngularJs_自定义注入对象_笔记1
  19. 【WPF/C#】图层筛选/拾取——Color Picker
  20. WEB网页监控系统的设计框架思路具体解释

热门文章

  1. 我在华为,软件测试人员在工作中如何运用Linux?
  2. Python学习之路:NumPy进阶
  3. Kickstart Round H 2018
  4. python中web应用与mysql数据库交互
  5. Spark计算模型RDD
  6. python基础网络编程--转
  7. Python文本文件的输入输出操作学习
  8. Task 6.2冲刺会议十 /2015-5-23
  9. 《找出1到正整数N中出现1的次数》
  10. 线程局部存储TLS(thread local storage)