Mit C++ Bereiche und Container schreiben und formatieren

Der Writer legt fest, auf welche Art die Umgebungen der Elemente geschrieben werden. Es gibt drei Arten von Umgebungen:

  • Das Präfix (prefix) – das wir vor allen Elementen eines Arrays schreiben.
  • Das Nach-Element (after element) – das nach jedem Element (mit Ausnahme des letzten Elements) geschrieben wird.
  • Das Suffix (suffix) – das wir nach allen Elementen eines Arrays schreiben.

Zur Formatierung jeder dieser Umgebungen müssen die Writer-Klassen drei Funktionen bereitstellen:


void write_prefix( streamOut)
void write_after_element( streamOut)
void write_suffix( streamOut)

Man kann auch seine eigene Writer-Klasse kreieren – die zwei bereits vorhandenen Klassen sollten allerdings ausreichend sein:

  • basic_range_writer ist der Standard-Writer. Er schreibt keine Präfixe, schreibt ein Komma nach jedem Element, und das Suffix besteht aus einer Leerstelle. Dieser Writer schreibt Elemente wie: John, James, Corina .
  • range_writer erlaubt das Einfügen von Präfix, Nach-Element und Suffix. So lassen sich beispielsweise Elemente schreiben wie: [John, James, Corina] oder {John}, {James}, {Corina}.

Die Transformation

Die Transformation gestattet es, jedes Element zu transformieren. Wie bereits erwähnt, kann die Transformation entweder ein Funktor oder eine Funktion sein und nimmt zwei Parameter an: den Stream, in den geschrieben wird, und das Objekt, das geschrieben wird. Die in Listing A gezeigte Standard-Transformation schreibt das Element in seinem jeweils aktuellen Zustand.

Man kann aber auch seine eigene, komplexere Transformation kreieren. So ließe sich beispielsweise eine Transformation erstellen, die jedes Element seinem Index gemäß mit einem Präfix versieht, wie dies in Listing B dargestellt wird.

Mit Listing B lassen sich Arrays wie dieses schreiben:

  • ‚[1] John, [2] James, [3] Corina‘ (PrefixByIndex Transformation)
  • ‚{ [1] John and [2] James and [3] Corina }‘ (PrefixByIndex Transformation kombiniert mit einem Writer ( „{ „, “ und „, “ }“) )

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Mit C++ Bereiche und Container schreiben und formatieren

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *