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;
Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…
Security-Experten von Check Point sind einer neuen Angriffsart auf die Spur gekommen, die E-Mail-Schutzmaßnahmen umgehen…
Hinter 84 Prozent der Zwischenfälle bei Herstellern stecken Schwachstellen in der Lieferkette. Auf dem Vormarsch…
Es kommt angeblich 2028 auf den Markt. Das aufgeklappte Gerät soll die Displayfläche von zwei…
Das System basiert auf Hardware von HPE-Cray und Nvidia. Die Inbetriebnahme erfolgt 2027.
Die Bundesnetzagentur hat ihr Gigabit-Grundbuch aktualisiert. Drei von vier Haushalten sollen jetzt Zugang zu Breitbandanschlüssen…