Ich habe einen Container mit Zeigern, die ich durchlaufen möchte, und rufe eine Member-Funktion auf, die einen Parameter hat, der eine Referenz ist. Wie mache ich das mit STL?
Meine aktuelle Lösung ist boost :: bind und boost :: ref für den Parameter.
%Vor%Eine verwandte Frage (von der ich meine aktuelle Lösung abgeleitet habe) ist boost :: bind mit Funktionen, die Parameter haben, die Referenzen sind . Dies fragt speziell, wie man das mit Boost macht. Ich frage, wie es ohne Boost gemacht werden würde.
Bearbeiten Es gibt eine Möglichkeit, dasselbe zu tun, ohne boost
zu verwenden. Mit std::bind
und Freunden kann der gleiche Code in einem C ++ 11-kompatiblen Compiler wie folgt geschrieben und kompiliert werden:
Dies ist ein Problem mit dem Design von <functional>
. Sie müssen entweder boost :: bind oder tr1 :: bind verwenden.
Sehen Sie sich an, um std :: foreach mit Parametern / Änderungen zu verwenden . Die Frage zeigt, wie man es mit einer for-Schleife macht. Die angenommene Antwort gibt ein Beispiel dafür, wie dies mit dem Algorithmus for_each erreicht werden kann.
Tags und Links c++ stl pass-by-reference