Eri c Niebler предлагает функцию zip_with
.
Но теперь, когда в C ++ 20 есть поддержка диапазонов, я хотел бы создать нечто подобное.
Проблема с filter
и transform
заключается в том, что они повторяют диапазон?
Как бы я go сделал это? Я застрял с этим некоторое время и не хотел бы использовать шаблоны выражений для одного и того же.
Скажем, например, у меня есть два вектора M1 {1,2,3} и M2 {4,5,6 }.
Я хотел бы использовать библиотеку диапазонов, чтобы перегрузить оператор и вернуть представление, которое содержит сложение матрицы этих двух - M1+M2 := {5,7,9}
.
С диапазонами-v3 я могу выполнить auto sum = zip_with(std::plus,M1,M2);
Вышеупомянутое выражение оценивается лениво. Как я могу заново создать это выражение в C ++ 20 Ranges?