Container

Container werden verwendet, um mehrere Elemente eines beliebigen Datentyps in einem Objekt zusammenzufassen, ähnlich einem Feld von Werten. Alle Werte in einem Container sind dabei vom selben Typ.

Dabei werden beim Einfügen generell Kopien der einzufügenden Objekte angelegt, sodaß die einzufügenden Objekte nicht dieselbe Lebensdauer haben müssen wie der Container. Wenn man für einen Container im konkreten Einzelfall einen Referenzsemantik benötigt, dann kann man das auch erreichen; siehe [Josuttis: Stdbib.] 5.10.

Alle in einem der Container verwendeten Klassen müssen folgende Mindestanforderungen erfüllen:

Es gibt folgende vollwertigen Container:

map/multimap und set/multiset werden dabei als assoziative Container bezeichnet, weil ihre Elemente über einen Schlüssel ,,assoziiert`` werden können. Die anderen Container bilden sequentielle Container; sie beinhalten eine Reihenfolge ihrer Elemente.

vector, deque, list, map, multimap, set und multiset haben insoweit eine identische Schnittstelle, daß Iteratoren (siehe Iteratoren) und Algorithmen (siehe Algorithmen) darauf angewendet können.

Die restlichen (stack, queue und priority_queue) sind dafür nicht geeignet. Sie sind aus den grundlegenden Containern hergeleitet, und heißen Container-Adapter.

Daneben gibt es noch Container, die nicht den vollen Satz an Funktionalität haben, und dafür auf ihren Einsatzzweck optimiert sind:

Vereinbart sind diese Container jeweils in einer Headerdatei gleichen Namens, außer priority_queue, multimap und multiset; diese sind in <queue>, <map> beziehungsweise <set> mit enthalten.



Unterabschnitte
AnyWare@Wachtler.de