In diesem Artikel wird eine bessere Möglichkeit zur Bereitstellung einer konsistenten Benutzeroberfläche für das Schreiben von Bereichen und Containern in Streams geschildert, mit der trotzdem der Operator << verwendet werden kann.
Betrachten wir zunächst, was eine allgemeine Lösung anbieten sollte. Sie sollte:
- in der Lage sein, Bereiche und Container zu schreiben. Die Lösung sollte für STL-ähnliche Bereiche funktionieren und gleichzeitig das Schreiben der Container erleichtern. Das Schreiben eines Bereichs bedeutet, dass man mit Hilfe einer [A, A + N]-Sequenz auch C-Arrays schreiben kann (A ist der Array, N ist die Größe des Arrays).
- in der Lage sein, gegebenenfalls jedes Element zu umgeben. Zum Beispiel könnte man folgendes Array schreiben wollen: ‚[John, James, Corina]‘
- in der Lage sein, gegebenenfalls eine Umwandlung (Transformation) auf jedes Element anzuwenden. Zum Beispiel möchte man vielleicht die Namen von Angestellten schreiben, wobei die Nachnamen in Großbuchstaben erscheinen sollen: [DOE, John; KEITH James; DYLAN, Richard]. Oder man möchte ein Array aus Ganzzahlen schreiben und dabei den Absolutbetrag jedes Elements verwenden.
- angemessene Defaulteinstellungen für die beiden vorangegangenen Punkte aufweisen. Wenn man zum Beispiel keine Transformation anwendet, sollte die Default-Transformation das Element unverändert ausgeben (die Identitäts-Transformation).
Durch die Kombination dieser Fähigkeiten erhält man ein leistungsfähiges Verfahren für das Schreiben von Arrays. Wer jetzt noch nicht überzeugt ist, sollte sich einmal die Beispiele am Ende dieses Artikels ansehen.
Neueste Kommentare
Noch keine Kommentare zu Schreiben und Formatieren von Bereichen und Containern in C++
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.