C++: Collections und Collection-Bereiche

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 ‚Easily‘ appeared 3 time(s);
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)
[0] Word ‚Easily‘ appeared 3 time(s);
[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;

Page: 1 2 3 4

ZDNet.de Redaktion

Recent Posts

Erreichbarkeit im Weihnachtsurlaub weiterhin hoch

Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…

15 Stunden ago

Hacker missbrauchen Google Calendar zum Angriff auf Postfächer

Security-Experten von Check Point sind einer neuen Angriffsart auf die Spur gekommen, die E-Mail-Schutzmaßnahmen umgehen…

2 Tagen ago

Bedrohungen in Europa: Schwachstellen in der Lieferkette dominieren

Hinter 84 Prozent der Zwischenfälle bei Herstellern stecken Schwachstellen in der Lieferkette. Auf dem Vormarsch…

2 Tagen ago

Bericht: Apple arbeitet an faltbarem iPad

Es kommt angeblich 2028 auf den Markt. Das aufgeklappte Gerät soll die Displayfläche von zwei…

3 Tagen ago

HPE baut Supercomputer am Leibniz-Rechenzentrum

Das System basiert auf Hardware von HPE-Cray und Nvidia. Die Inbetriebnahme erfolgt 2027.

3 Tagen ago

Bund meldet Fortschritte in der Netzversorgung

Die Bundesnetzagentur hat ihr Gigabit-Grundbuch aktualisiert. Drei von vier Haushalten sollen jetzt Zugang zu Breitbandanschlüssen…

3 Tagen ago