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 指向的类型的结果值。
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 指向的类型的结果值。