[Dune] Arraylist und istl Vektoren.

Markus Blatt mblatt at hal.iwr.uni-heidelberg.de
Tue Jan 25 09:49:14 CET 2005


Hallo,

On Mon, Jan 24, 2005 at 06:29:57PM +0100, Robert Kloefkorn wrote:
> 
> ich hätte mal eine Frage zu den ArrayList bzw. Istl Vektoren.
> Gibt es bei diesen Klassen eine Methode die den Vektor vergrössert, aber 
> die bestehenden Daten nicht löscht? Also so eine Art realloc?

Nein, gibt es momentan nicht, da bei der ArrayList nie umkopiert wird.
Statt dessen wir einfach ein neues Feld fester Groesse allokiert und an
das Ende der Liste eingefügt. Für den Nutzer sieht es von aussen aus wie
ein grosses Feld, intern ist es aber eine Liste kleinerer Felder fester
Groesse.

> Und wenn nicht, wäre es ein grosser Aufwand, das zu implementieren, weil 
> wenn diese Funktionalität vorhanden ist, dann können die Discreten 
> Funktionenräume usw.. ohne weiteres auch für diese Klassen verwendet 
> werden inklusive Adaption.

Nein wäre es im Falle der ArrayList nicht. Allerdings ist es auch kein
zusammenhaengendes Speicherstueck, dass die ArrayList verwaltet.

Da bei ArrayList und ISTL-Vektoren, dass allokieren allerdings in einem
eigenen Allokator passiert, waere es vielleicht unmissverstaendlicher
die Methode

reserve(size_t noElements)

zu nennen, wie das auch bei dem STL vector der Fall ist.

Gruß,

Markus Blatt
Gruss,

Markus
-- 




More information about the Dune mailing list