Dynamische Daten in C ++

7

Ich schreibe in C ++ und brauche einen dynamischen Datenspeicher wie ArrayList in C # oder Java.

Kann mir jemand dabei helfen? Ich bin mir nicht sicher, was ich benutzen soll.   Danke!

    
Ricardo 22.07.2010, 17:48
quelle

7 Antworten

8

Sie suchen nach std::vector . Sie können hier darüber lesen (auf dieser Seite nach unten scrollen, um eine Beschreibung seiner Funktionen anzuzeigen).

Vektoren haben eine konstante Zeitsuche. Das Einfügen / Entfernen erfolgt schnell am Ende eines Vektors, aber (wie der Link, den ich poste, ausführlicher erläutert), ist ansonsten langsamer. Außerdem müssen Vektoren in der Größe angepasst werden, wenn Sie zusätzliche Daten darin speichern. Es lohnt sich also, reserve (das ist wie ArrayLists ensureCapacity ). Beachten Sie, dass diese Größenänderung automatisch erfolgt - reserve gibt es nur aus Leistungsgründen.

    
Cam 22.07.2010, 17:50
quelle
11

std :: vector ist, was Sie suchen.

    
Hamid Nazari 22.07.2010 17:50
quelle
4

std::vector ist dein Freund, hier ist ein Tutorial.

    
Justicle 22.07.2010 17:49
quelle
1

oder std::list für diese Angelegenheit ...

    
anirvan 22.07.2010 17:51
quelle
0

Wenn Sie wirklich nur Anfänger sind, sollten Sie mit den Grundlagen beginnen: Arrays .

Sobald Sie verstanden haben, was darunter vorgeht, sollten Sie mit der STL und den Containern (wie vector ) fortfahren, wie alle anderen es vorschlagen.

    
Austin Hyde 22.07.2010 17:51
quelle
0

Nun, es gibt zwei Optionen, die sofort erscheinen.

Als Erstes verwenden Sie std :: vector. Ein Vektor funktioniert im Grunde wie ein Array (mit Ausnahme der Deklarations- und Aufrufsyntax) auf der Oberfläche. Die zwei Dinge, die Sie über Vektoren wissen möchten, sind, dass Sie eine Funktion aufrufen können, die die Größe Ihres Vektors erhöht (fügen Sie Indizes am Ende hinzu). Die andere Sache ist, dass Sie einen Vektor von Vektoren deklarieren müssen, um einen zweidimensionalen Vektor zu erstellen. Dadurch können Sie auch mehr als 2 Dimensionen haben.

Die andere Sache, die Sie verwenden können, ist std :: list. Dies ist nur eine verknüpfte Liste, in die Sie Elemente einfügen und löschen können.

    
user381261 22.07.2010 18:02
quelle
0

Sie sind beide zweifellos in der Buchliste erwähnt, aber gerade jetzt scheint es, als ob Sie eines (oder beide) der folgenden benötigen:

Die C ++ Standardbibliothek , von Nicolai Josuttis.
STL Tutorial und Reference Guide, 2 nd ed. , von Musser, Saini und Derge

    
Jerry Coffin 22.07.2010 18:05
quelle

Tags und Links