Ich habe mich nur gefragt, ob es etwas gibt (entweder in C ++ 11 oder Boost), das mir helfen könnte, so etwas zu tun:
%Vor%das Ergebnis sollte natürlich {3, 7, 7} sein und wo anstelle von std :: plus irgendeine binary_function sein könnte.
Wenn also jemand eine Idee hat, lass es mich wissen.
Sie können dazu die 5-Parameter-Überladung von std::transform
verwenden. Dies erfordert einen binären Funktor, um Paare von Elementen zweier Bereiche zu bearbeiten:
Nur zum Spaß, ich werde auf eine Alternative zu std::vector
und std::transform
verweisen. Sie könnten stattdessen std::valarray
verwenden.
Ergebnis:
%Vor%Obwohl der Code für das Hinzufügen der Valarrays einfach und sauber ist, hat Valarray leider nie viel Popularität gewonnen. Als solche bleibt uns diese seltsame Situation, in der selbst Code wie dieser, der mir als sehr sauber, direkt und lesbar erscheint, immer noch als verschleiert gilt, einfach weil so wenige Menschen daran gewöhnt sind.