transform算法
时间: 2023-10-12 13:10:31 浏览: 155
transform算法是C++标准库中的一个算法,用于将一个容器的每个元素应用一个函数,并将结果存储到另一个容器中。它的函数原型如下:
```
template<class InputIt, class OutputIt, class UnaryOperation>
OutputIt transform(InputIt first1, InputIt last1, OutputIt d_first, UnaryOperation unary_op);
```
其中,`first1`和`last1`定义了输入序列的范围,`d_first`定义了输出序列的起始位置,`unary_op`是一个接受一个输入元素并返回一个输出元素的函数对象。例如,下面的代码将一个`vector`中的每个元素加1,并存储到另一个`vector`中:
```
#include <algorithm>
#include <vector>
#include <iostream>
int main()
{
std::vector<int> v1 = {1, 2, 3, 4, 5};
std::vector<int> v2(v1.size());
std::transform(v1.begin(), v1.end(), v2.begin(),
[](int n) { return n + 1; });
for (auto n : v2) {
std::cout << n << ' ';
}
std::cout << '\n';
return 0;
}
```
输出结果为:
```
2 3 4 5 6
```
这里的`transform`算法将输入序列`v1`中的每个元素加1,并将结果存储到输出序列`v2`中。这个过程是通过使用一个lambda表达式作为`unary_op`参数来实现的。
阅读全文