std::transform 对两个std::vector对应元素相加
时间: 2024-08-14 17:08:45 浏览: 156
实例讲解C++编程中lambda表达式的使用
`std::transform` 是 C++ 标准库中的算法模板,它用于对两个容器中的元素应用某种操作,并将结果存储到另一个容器中。如果你想利用 `std::transform` 来对两个 `std::vector` 中对应的元素相加,可以按照以下步骤操作:
1. 首先,确保你的 `std::vector` 包含相同的类型,这样才能进行相应的数值运算。
2. 定义一个函数对象(Function Object),也可以是一个 lambda 表达式,这个函数接受两个参数,分别代表从两个 `std::vector` 中取出的元素,然后返回它们的和。例如,如果你的元素是整数,你可以这样创建函数对象:
```cpp
auto add = [](int a, int b) { return a + b; };
```
3. 使用 `std::transform` 和两个输入的 `std::vector`,以及定义好的函数对象,生成一个新的 `std::vector`,其中包含了原两个向量对应位置元素的和:
```cpp
std::vector<int> result;
std::transform(input_vector1.begin(), input_vector1.end(),
input_vector2.begin(), std::back_inserter(result), add);
```
这里 `std::back_inserter(result)` 指定了新产生的元素将被添加到 `result` 后面。
4. 最后,`result` 就是你想要的结果,每个元素是 `input_vector1` 和 `input_vector2` 对应位置元素之和。
阅读全文