您当前的位置: 首页 >  c++

令狐掌门

暂无认证

  • 0浏览

    0关注

    513博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C++ std::transform使用方法与代码演示

令狐掌门 发布时间:2022-03-02 09:40:26 ,浏览量:0

  std::transform在指定的范围内应用于给定的操作,并将结果存储在指定的另一个范围内。要使用std::transform函数需要包含头文件。   std::transform有两个重载方法,一个是对应于一元操作,一个是对应于二元操作。

std::transform 二元操作

  std::transform(first1, last1, first2, result, func);

  对于二元操作,使用[first1, last1)范围内的每个元素作为第一个参数调用func, 并以first2开头的范围内的每个元素作为第二个参数调用func, 每次调用返回的值都存储在以result开头的范围内。给定的func将被连续调用last1-first1次。func可以是函数指针或函数对象或lambda表达式。

std::transform 一元操作

  std::transform(first1, last1, result, func);

  对于一元操作,将func应用于[first1,last1)范围内的每个元素,并将每个操作返回的值存储在以result开头的范围内。给定的op将被连续调用last1-first1次。func可以是函数指针或函数对象或lambda表达式。

示例代码
/*

std::transform用法

*/

#include 
#include 
#include 

using namespace std;

int value_increase(int i){ return i + 5; }

/*

std::transform 二元操作

std::transform(first1, last1, first2, result, func);

对于二元操作,使用[first1, last1)范围内的每个元素作为第一个参数调用func,
并以first2开头的范围内的每个元素作为第二个参数调用func,
每次调用返回的值都存储在以result开头的范围内。
给定的func将被连续调用last1-first1次。func可以是函数指针或函数对象或lambda表达式。

*/
int main() {
  vector vec1{1, 4, 2, 3, 5};
  vector vec2{1, 2, 3, 4, 5};

  // 将vec1和vec2的每个元素相加,并保存到vec2
  std::transform(vec1.begin(), vec1.end(), vec2.begin(), vec2.begin(),
                 [](int v1, int v2) -> int { return v1 + v2; });

  for (auto ele : vec2) {
    cout             
关注
打赏
1652240117
查看更多评论
0.0385s