for_each:对指定区间中的每个元素使用指定的函数进行访问及处理,所用的函数作为参数传递给该函数。

transform:元素传输

声明:

  1. #include <algorithm>
  2. template <class inputItr,class function>
  3. function for_each(inputItr first,inputItr last,function func);
  4. template <class inputItr, class outputItr, class unaryOperation>
  5. outputItr transform(inputItr first,inputItr last, outputItr destFirst,unaryOperation op);
  6. template <class inputItr1, class inputItr2, class outputItr, class binaryOperation>
  7. outputItr transform(inputItr1 first1, inputItr1 last, inputItr2 first2, outputItr destFirst,binaryOperation bop);

示例代码:

  1. #include <iostream>
  2. #include <list>
  3. #include <string>
  4. #include <numeric>
  5. #include <iterator>
  6. #include <vector>
  7. #include <functional>
  8. #include <algorithm>
  9. using namespace std;
  10. void doubleNum(int& num) {
  11. num = 2 * num;
  12. cout << num << " ";
  13. }
  14. int main() {
  15. char cList[5] = {'a','b','c','d','e'};
  16. vector<char> charList(cList,cList+5);
  17. ostream_iterator<char> sreen(cout, " ");
  18. cout << "charList:" << endl;
  19. copy(charList.begin(),charList.end(),sreen);
  20. cout << endl;
  21. //transform
  22. transform(charList.begin(),charList.end(),charList.begin(),toupper);
  23. cout << "charList:" << endl;
  24. copy(charList.begin(),charList.end(),sreen);
  25. cout << endl;
  26. int list[7] = {2,8,5,1,7,11,3};
  27. ostream_iterator<int> srceenInt(cout, " ");
  28. cout << "list" << endl;
  29. copy(list,list+7,srceenInt);
  30. cout << endl;
  31. // for_each
  32. for_each(list,list + 7, doubleNum);
  33. cout << endl;
  34. cout << "list" << endl;
  35. copy(list,list+7,srceenInt);
  36. cout << endl;
  37. return 0;
  38. }

运行结果:

charList:
a b c d e
charList:
A B C D E
list
2 8 5 1 7 11 3
4 16 10 2 14 22 6
list
4 16 10 2 14 22 6

STL 之for_each,transform相关推荐

  1. STL常见算法transform以及二分查找,以及lambda表达式

    下面主要讲下transform transform主要是如下作用:实现对两个数组的元素,依次对其进行操作,将其结果放入两外一个数组中. 注意:上图第三个参数是第二个数组的首元素. lambda表达式, ...

  2. (原創) 如何正確的使用迴圈(使用for_each)? (C/C++) (STL) (template)

    Abstract之前在(原創) 如何使用for_each() algorithm? (C/C++) (STL) 曾經討論過for_each(),不過當時功力尚淺,只談到了皮毛而已,這次看了effect ...

  3. STL常用的遍历算法

    STL常用的遍历算法 for_each() transform() for_each() for_each: 用指定函数依次对指定范围内所有元素进行迭代访问.该函数不得修改序列中的元素. void s ...

  4. 10、STL实用技术专题

    10.STL实用技术专题 10.1STL(标准模板库)理论基础 10.1.1基本概念 #include <iostream> #include <vector> #includ ...

  5. 【C++】C++STL标准模板库

    一.STL的基本概念 1.什么是STL STL (Standard Template Librany)标准准模板庠是惠普实验室开发的一系列软件的统称.现在主要出现在C++中,但在被引入C++之前该技木 ...

  6. STL 简介,标准模板库

    作者:Scott Field 这篇文章是关于C++语言的一个新的扩展--标准模板库的(Standard Template Library),也叫STL.     当我第一次打算写一篇关于STL的文章的 ...

  7. STL中list用法详解

    本文转载自百度文库.作者如下.其中下面的count, count_if等函数的使用有些陈旧,如在编译时遇到问题,请百度. 标准模板库(STL)介绍 作者:Scott Field 本文以List容器为例 ...

  8. 黑马程序员C++学习笔记(第三阶段核心:STL)--- 更新中

    目录 迭代器 序列式容器 vector -- 可随机访问 list -- 不支持随机访问 deque -- 动态 关联式容器 -- 红黑树 map multimap set multiset -- 废 ...

  9. for_each使用方法详解

    Abstract 之前在(原創) 如何使用for_each() algorithm? (C/C++) (STL) 曾經討論過for_each(),不過當時功力尚淺,只談到了皮毛而已,這次看了effec ...

最新文章

  1. linux禁止路由器,FCC 新规可能禁止在 WiFi 路由器安装 OpenWRT
  2. android开发环境搭建教程
  3. NanoPi NEO Air使用十五:使用V4L2驱动USB摄像头
  4. 基于jsp的网上商城_[源码和文档分享]基于S2SH框架的JSP和MySQL的网上商城系统
  5. 如何利用C/C++逐行读取txt文件中的字符串(可以顺便实现文本文件的复制)
  6. 设置secureCRT中vim的字体颜色
  7. 清华美女学霸数学笔记曝光, 精美程度无与伦比
  8. vue和微信小程序的区别、比较
  9. php堆栈溢出,php - 警告:php_eval() - 堆栈内存溢出
  10. 调用拷贝构造函数的场景
  11. html表格布局方式有那几种,前端几种常见的布局方式
  12. 生成静态libevent
  13. ans函数python_#12 Python函数
  14. html5开发播放器,larkplayer: 插件化的 HTML5 播放器
  15. 《史蒂夫·乔布斯传》(Steve Jobs)官方正式中文版高清PDF
  16. 2022年计算机一级考试网络安全素质教育模拟试题及答案
  17. java开发app后端_app后端用什么开发
  18. 10位程序员眼中的2007:寻找软件开发利器
  19. 文件被别的程序打开无法删除怎么办?
  20. 1路编码器脉冲计数器或2路DI高速计数器,Modbus RTU模块 WJ150

热门文章

  1. MyBatis从缓存查找数据的依据
  2. SpringBoot 路径访问控制
  3. 内核aio_今天来说说令人让人傻傻分不清的BIO,NIO,AIO
  4. python3怎么使用qstring_请问PyQt的QString和python的string的区别?
  5. dubbo provider异步_dubbo九连问你知道多少?
  6. 以太坊搭建联盟链详细教程
  7. 设计模式系列·王小二需求历险记(一)
  8. RxJava系列四(过滤操作符)
  9. ×××S 2012 聚合函数 -- 介绍
  10. Java序列化简单例子