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

Gefahren im Foxit PDF-Reader

Check Point warnt vor offener Schwachstelle, die derzeit von Hackern für Phishing ausgenutzt wird.

2 Stunden ago

Bitdefender entdeckt Sicherheitslücken in Überwachungskameras

Video-Babyphones sind ebenfalls betroffen. Cyberkriminelle nehmen vermehrt IoT-Hardware ins Visier.

2 Stunden ago

Top-Malware in Deutschland: CloudEye zurück an der Spitze

Der Downloader hat hierzulande im April einen Anteil von 18,58 Prozent. Im Bereich Ransomware ist…

2 Stunden ago

Podcast: „Die Zero Trust-Architektur ist gekommen, um zu bleiben“

Unternehmen greifen von überall aus auf die Cloud und Applikationen zu. Dementsprechend reicht das Burg-Prinzip…

17 Stunden ago

Google schließt weitere Zero-Day-Lücke in Chrome

Hacker nutzen eine jetzt gepatchte Schwachstelle im Google-Browser bereits aktiv aus. Die neue Chrome-Version stopft…

19 Stunden ago

Hacker greifen Zero-Day-Lücke in Windows mit Banking-Trojaner QakBot an

Microsoft bietet seit Anfang der Woche einen Patch für die Lücke. Kaspersky-Forscher gehen davon aus,…

20 Stunden ago