005
20.01.2008, 19:42 Uhr
xXx
Devil
|
Also, bsw. ein std::vector ist nicht viel anderes als ein dynamischer Array(d.h. einer der aufm Heap per new[]/delete[] erzeugt wird), wobei noch ein paar Optimierungen vorgenommen wurden.
Schreib dir doch einfach mal eine Funktion, um einen Speicher von beliebiger Größe anzulegen, dann eine um diesen zu vergrößern und dann noch eine um das wieder frei zu geben. Dann noch eine zum Kopieren der Speicherbereiche (und vllt. dabei auch Copy-Konstruktoren usw. der einzelnen Elemente beachten). Dann wirst du schnell sehen, dass das ganze nicht so sehr leicht ist. Man braucht es aber immer wieder, wenn man seine Anwendung dynamisch halten will oder bsw. Messwerte einlesen will usw..
Nun bezeichnet man aber als Standardcontainer nicht nur std::vector. Auch std::list, std::deque und sogar std::string(dynamischer Array von char) sind Container. std::list läst sich am besten nutzen, wenn oft Daten gelöscht/eingefügt werden und zwar nicht am Ende oder Anfang. So hat jeder Typ seine Geschwindigkeitsvorteile usw. die sich bei großen Datenmengen auszeichnen.
Naja aber kannst dich dazu ja vllt einfach mal informieren. |