2个向量的和值

MrG*_*Guy 20 c++ vector std

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
Run Code Online (Sandbox Code Playgroud)

现在,将它们的值一起添加应该如下所示:

//2,0,2,8,5
Run Code Online (Sandbox Code Playgroud)

我期待的答案是"没有"或"是"+方法.

Jér*_*ucq 45

你可以使用std::transformstd::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
Run Code Online (Sandbox Code Playgroud)

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

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

  • 我纠正了论点。第两个是第一个序列的初始位置和最终位置的输入迭代器。第三个是第二个范围的初始位置。第四个是运算结果存储范围的起始位置。执行的最后一项操作。 (2认同)
  • 好的,这里的 Python 家伙,请多多包涵.. 不能用 `+` 符号添加向量(相同长度)吗?我需要做一些运算符重载吗? (2认同)