In diesem Beispielcode ist die Schleife innerhalb der beiden process()
-Funktionen dupliziert. Der einzige Unterschied ist, dass einer const
ist und der andere nicht.
Gibt es eine Möglichkeit, die Code-Duplizierung zu entfernen, so dass die Schleife nur einmal existiert? Dies ist nur ein Beispiel, aber im realen Code ist die Schleife ziemlich komplex, daher möchte ich aus Wartungsgründen nur einmal existieren.
%Vor%Bitte beachten Sie, dass dies keine doppelte Frage ist. Die folgenden ähnlichen Fragen und Antworten sind unterschiedlich:
Wenn ich die Lösung versuche, die in diesen Antworten gegeben wird, funktioniert es nicht, aber sieht so aus:
%Vor% Dies ist ein vereinfachtes Beispiel, daher wäre es sehr zu begrüßen, wenn Antworten sich auf das Problem konzentrieren könnten (wie man die duplizierte Schleife aus den beiden process()
-Funktionen entfernt), anstatt Kommentare über das Design - Änderungen am Design sind gut natürlich, wenn es die doppelte Schleife in dem Prozess entfernt.
Versuchen Sie etwas wie folgt:
%Vor% Natürlich könnten Sie in diesem vereinfachten Beispiel einfach std::for_each()
verwenden: