РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
390 of 815 menu

Функция inner_product

Функция inner_product вычисляет скалярное произведение двух диапазонов. Она перемножает соответствующие элементы первого и второго диапазонов, а затем суммирует полученные произведения, начиная с заданного начального значения. В первый и второй параметры мы передаем итераторы начала и конца первого диапазона, в третий - итератор начала второго диапазона, а в четвертый - начальное значение суммы. Дополнительно можно указать свои функции для операции сложения и умножения.

Синтаксис

inner_product(first1, last1, first2, init) inner_product(first1, last1, first2, init, op1, op2)

Пример

Давайте вычислим скалярное произведение двух векторов с начальным значением 0:

#include <iostream> #include <vector> #include <numeric> using namespace std; int main() { vector<int> v1 = {1, 2, 3, 4, 5}; vector<int> v2 = {5, 4, 3, 2, 1}; int res = inner_product(v1.begin(), v1.end(), v2.begin(), 0); cout << res << endl; return 0; }

Результат выполнения кода:

35

Пример

Давайте вычислим скалярное произведение с начальным значением 100:

#include <iostream> #include <vector> #include <numeric> using namespace std; int main() { vector<int> v1 = {1, 2, 3, 4, 5}; vector<int> v2 = {5, 4, 3, 2, 1}; int res = inner_product(v1.begin(), v1.end(), v2.begin(), 100); cout << res << endl; return 0; }

Результат выполнения кода:

135

Пример

Давайте используем свои функции для операции сложения и умножения, чтобы вычислить произведение сумм соответствующих элементов:

#include <iostream> #include <vector> #include <numeric> using namespace std; int main() { vector<int> v1 = {1, 2, 3, 4, 5}; vector<int> v2 = {5, 4, 3, 2, 1}; int res = inner_product( v1.begin(), v1.end(), v2.begin(), 1, [](int a, int b) { return a * b; }, [](int a, int b) { return a + b; } ); cout << res << endl; return 0; }

Результат выполнения кода:

216

Смотрите также

  • функция accumulate,
    которая суммирует элементы диапазона
  • функция reduce,
    которая сворачивает диапазон в одно значение
  • функция partial_sum,
    которая вычисляет частичные суммы диапазона
  • функция transform,
    которая применяет функцию к элементам диапазона
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить