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

Umfrage: Angestellte in Deutschland unterschätzen NIS-2-Richtlinie

Fast zwei Drittel halten jedoch eine Umsetzung aller Vorgaben von NIS 2 bis Jahresende für…

4 Stunden ago

Kostenloser Dekryptor für ShrinkLocker

Mit dem Dekryptor von Bitdefender können Opfer von Attacken mit der Shrinklocker-Ransomware Dateien wiederherstellen.

18 Stunden ago

Malwarebytes warnt vor Betrugsmaschen beim Weihnachtseinkauf

In der Vorweihnachtszeit ist vor allem Malvertising auf dem Vormarsch. Cyberkriminelle locken Nutzer über schädliche…

18 Stunden ago

Bedrohungsindex: Deutliche Zunahme von Infostealern im Oktober

Dazu trägt unter der Infostealer Lumma-Stealer bei. Hierzulande dominiert der Infostealer Formbook die Malware-Landschaft.

1 Tag ago

Chrome 131 schließt zwölf Sicherheitslücken

Eine schwerwiegende Anfälligkeit hebelt die Sicherheitsfunktion Seitenisolierung auf. Betroffen sind Chrome für Windows, macOS und…

2 Tagen ago

DeepL Voice mit KI für Sprach- übersetzungen

DeepL Voice ermöglicht Live‑Übersetzung von Meetings und Gesprächen in 13 Sprachen.

2 Tagen ago