In einem vorangegangenen Artikel wurde dargestellt, wie sich Bereiche und Container beim Schreiben in Standard Template Library (STL)-Streams problemlos formatieren lassen. Das Schreiben von Bereichen ist mit dem Operator << ganz einfach. Durch range( itFirst, itLast [, formatter]) wird ein Bereich geschrieben, durch container( cont [, formatter]) ein Container. Es kann auch ein Formatter angegeben werden, der jedes Element vor dem Schreiben formatiert. Wenn man keinen Formatter angibt, wird ein Default-Formatter verwendet.
Nun werden wir uns ansehen, wie sich Collections und Collection-Bereiche mit der vertrauten Syntax schreiben lassen. Tabelle A enthält Beispiele für das Schreiben einer Collection:
Ausgabe | Schreibart |
Easily -> 3, collections -> 12, write -> 5 | Default |
Easily -> 3 collections -> 12 write ->5 | Mit Formatter (Custom Transformation und Custom Writer) |
[Easily] -> [3]; [collections] -> [12]; [write] -> [5]. | Mit Formatter (Custom Transformation und Custom Writer) |
Key: Easily, Value: 3; Key: collections, Value: 12; Key: write, Value: 5. | Mit Formatter (Custom Transformation und Custom Writer) |
Word ‚collections‘ appeared 12 time(s); Word ‚write‘ appeared 5 time(s). | Mit Formatter (Custom Transformation und Custom Writer) |
Word ‚EASILY‘ appeared 3 time(s); Word ‚COLLECTIONS‘ appeared 12 time(s); Word ‚WRITE‘ appeared 5 time(s). | Mit Formatter (Custom Transformation, Custom Transformer und Custom Writer) |
[1] Word ‚collections‘ appeared 12 time(s); [2] Word ‚write‘ appeared 5 time(s). | Mit Formatter (Custom Transformation, Custom Transformer und Custom Writer) |
Tabelle A: Schreiben einer Collection
Bei Collections handelt es sich um assoziative Arrays, die einem Wert (z.B. std::map, std::multipap) einen Schlüssel zuordnen. Da die Collections Container sind, könnte man annehmen, dass die Bereichs-/Container-Funktionen auch für Collections anwendbar sind. Betrachten wir jedoch den folgenden Code:
// try to parse a file, and for each word write how many times // it appeared in the file std::map< std::string, int> collWordCounts; // … code std::cout << container( collWordCounts) << std::endl;
Check Point warnt vor offener Schwachstelle, die derzeit von Hackern für Phishing ausgenutzt wird.
Video-Babyphones sind ebenfalls betroffen. Cyberkriminelle nehmen vermehrt IoT-Hardware ins Visier.
Der Downloader hat hierzulande im April einen Anteil von 18,58 Prozent. Im Bereich Ransomware ist…
Unternehmen greifen von überall aus auf die Cloud und Applikationen zu. Dementsprechend reicht das Burg-Prinzip…
Hacker nutzen eine jetzt gepatchte Schwachstelle im Google-Browser bereits aktiv aus. Die neue Chrome-Version stopft…
Microsoft bietet seit Anfang der Woche einen Patch für die Lücke. Kaspersky-Forscher gehen davon aus,…