Подтвердить что ты не робот

Значения суммы 2 вектора

Есть ли какой-либо реализованный метод в библиотеке С++, который позволяет суммировать значения двух векторов (одного и того же размера и типа курса)?
Например:

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

Ответ, который я ожидаю, - это метод "Нет, нет" или "да" +.

4b9b3361

Ответ 1

Вы можете использовать std::transform и 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 аргументов:

  • Два первых являются входными итераторами в начальное и конечное положения первой последовательности.
  • Третий - входной итератор в исходное положение второго диапазона.
  • Четвертый - это выходной итератор исходного положения диапазона, в котором хранятся результаты операции.
  • Последний аргумент - это двоичная функция, которая принимает два элемента в качестве аргумента (одна из каждой из двух последовательностей) и возвращает некоторое значение результата, конвертируемое в тип, обозначенный OutputIterator.