C++中的transform()函数
时间: 2023-12-12 15:02:57 浏览: 22
`transform()` 函数是C++中的一个算法函数,其作用是将某个区间内的每个元素进行特定操作,并将结果保存到另一个区间中。它的函数原型如下:
```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` 中:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
int plus_one(int x) {
return x + 1;
}
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(), plus_one);
for (int i : v2) {
std::cout << i << " ";
}
// 输出:2 3 4 5 6
return 0;
}
```
在上面的代码中,我们使用 `transform()` 函数对 `v1` 进行操作,并将结果保存到 `v2` 中。我们定义了一个函数 `plus_one()`,该函数接受一个整数并将其加1,然后将其作为 `transform()` 函数的 `unary_op` 参数传递。