2 个向量的总和值

Sum values of 2 vectors

C++ 库中是否有任何实现的方法允许您对两个向量(当然具有相同的大小和类型)的值求和?
例如:

std::vector<int> a;//looks like this: 2,0,1,5,0
std::vector<int> b;//looks like this: 0,0,1,3,5

现在将它们的值相加应该如下所示:

//2,0,2,8,5

我期待的答案是 "No there isn't" 或 "yes" + 方法。

您可以使用std::transform and std::plus<int>()

std::vector<int> a;//looks like this: 2,0,1,5,0
std::vector<int> b;//looks like this: 0,0,1,3,5

// std::plus adds together its two arguments:
std::transform (a.begin(), a.end(), b.begin(), a.begin(), std::plus<int>());
// a = 2,0,2,8,5

这种形式的 std::transform 有 5 个参数:

  • 两个第一个是第一个序列的初始和最终位置的输入迭代器。
  • 第三个是指向第二个范围初始位置的输入迭代器。
  • 第四个是运算结果存放范围起始位置的输出迭代器。
  • 最后一个参数是一个二元函数,它接受两个元素作为参数(两个序列中的每一个),以及 returns 一些可转换为 OutputIterator 指向的类型的结果值。