transform函数的作用是:将某操作应用于指定范围的每个元素。transform函数有两个重载版本:
transform(first,last,result,op);//first是容器的首迭代器,last为容器的末迭代器,result为存放结果的容器,op为要进行操作的一元函数对象或sturct、class。

transform(first1,last1,first2,result,binary_op);//first1是第一个容器的首迭代
器,last1为第一个容器的末迭代器,first2为第二个容器的首迭代器,result为存放结果的容器,binary_op为要进行操作的二元函数
对象或sturct、class。

注意:第二个重载版本必须要保证两个容器的元素个数相等才行,否则会抛出异常。

看一个例子:利用transform函数将一个给定的字符串中的小写字母改写成大写字母,并将结果保存在一个叫second的数组里,原字符串内容不变。

我们只需要使用transform的第一个重载函数,当然我们也可以使用for_each函数来完成再copy几次就行了,现在来看一下代码:

 #include <iostream>
#include <algorithm>
using namespace std;
char op(char ch)
{ if(ch>='A'&&ch<='Z')
return ch+;
else
return ch;
}
int main()
{
string first,second;
cin>>first;
second.resize(first.size());
transform(first.begin(),first.end(),second.begin(),op);
cout<<second<<endl;
return ;
}
再看一个例子:给你两个vector向量(元素个数相等),请你利用transform函数将两个vector的每个元素相乘,并输出相乘的结果。

代码:

foreach的用法

 #include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
void print(int &elem){cout<<elem<<" ";}
int op(int a,int b){return a*b;}
int main()
{
vector <int> A,B,SUM;
int n;
cin>>n;
for(int i=;i<n;i++)
{
int t;
cin>>t;
A.push_back(t);
}
for(int i=;i<n;i++)
{
int t;
cin>>t;
B.push_back(t);
}
SUM.resize(n);
transform(A.begin(),A.end(),B.begin(),SUM.begin(),op);
for_each(SUM.begin(),SUM.end(),print);
return ;
}

最新文章

  1. Redis和Memcached的区别详解
  2. Scala Collection简介
  3. case when 对某个字段值分类讨论
  4. IE下判断IE版本的语句...[if lte IE 6]……[endif]
  5. Oracle-查看oracle是否有表被锁
  6. 干货:Web应用上线之前程序员应该了解的技术细节
  7. Ruby on Rails Tutorial读书笔记-1
  8. [Mugeda HTML5技术教程之18]如何在Android应用中使用Mugeda动画内容
  9. MySQL--连接属性
  10. ngRoute路径出现#!#解决方案
  11. python 有关datetime时间日期 以及时间戳转换
  12. html计时发送验证码功能的实现
  13. HFun.快速开发平台(一)=》简述
  14. 项目开发常见字符串处理模型-strstr-while/dowhile模型
  15. BZOJ1059 [ZJOI2007]矩阵游戏 二分图匹配 匈牙利算法
  16. 如何部署hadoop集群
  17. WINDOWS 端口查看
  18. Hiero中的Events机制
  19. 使用FTP发布和更新Windows Azure网站
  20. Centos升级安装.Net core 1.1

热门文章

  1. Python基础:数值(布尔型、整型、长整型、浮点型、复数)
  2. 【转】Aspose.Cells读取excel文件
  3. sqlsever备份,还原和导入导出方法
  4. floyd离散,最小环
  5. HTML5的新特性
  6. mysql服务器io等待高定位与分析
  7. 六个创建模式之简单工厂模式(Simple Factory Pattern)
  8. 来自亚马逊CEO Jeff Bezos的20句经验之谈
  9. 解决客户 IE 浏览器&quot;兼容性视图&quot;设置带来的问题
  10. javascript --- 将共享属性迁移到原型中去