Rufen Sie die Elementfunktion für jedes Element in einem Container auf

7

Diese Frage ist eine Frage des Stils, da Sie immer eine for-Schleife oder ähnliches schreiben können; gibt es jedoch eine weniger aufdringliche STL oder BOOST äquivalent zum Schreiben:

%Vor%

?

So etwas wie (imaginiert) das:

%Vor%

Ich denke, es wäre 1) weniger Tipparbeit, 2) einfacher zu lesen, 3) weniger Änderungen, wenn Sie sich entschieden, Basistyp / Containertyp zu ändern.

BEARBEITEN: Danke für deine Hilfe, was nun, wenn ich einige Argumente an die Member-Funktion übergeben möchte?

    
kyku 05.04.2009, 14:52
quelle

4 Antworten

4

Ich fand heraus, dass die Boost-Bindung für die Aufgabe gut geeignet ist, und Sie können zusätzliche Argumente an die Methode übergeben:

%Vor%     
kyku 05.04.2009, 19:10
quelle
22
%Vor%

Siehe std::for_each und std::bind Dokumentation für Details.

Sie haben Ihren Schnitt verpasst: Wie auch immer, hier ist ein weiterer Weg, um das zu erreichen, was Sie wollen, ohne Boost zu benutzen, wenn es sein muss:

%Vor%     
dirkgently 05.04.2009 14:56
quelle
5

Sie können std :: for_each oder boost's foreach konstruiert .

Verwenden Sie Boost BOOST_FOREACH oder BOOST_REVERSE_FOREACH, wenn Sie die Logik nicht in eine andere Funktion verschieben möchten.

    
Brian R. Bondy 05.04.2009 15:03
quelle
0

Wenn Sie die Leistung verbessern und nicht nur Ihren Code verbessern möchten, benötigen Sie eine Kartenfunktion. Eric Sink hat eine .net-Implementierung

geschrieben     
Chris Upchurch 05.04.2009 15:12
quelle

Tags und Links