2Danke
ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
988
988
EMPFEHLEN
-
Hallo,
ich habe viel über die im Titel stehenden Elemente gelesen, doch ich blicke trotzdem nicht durch, welches nun für was geeignet ist. Immer wenn ich sie einsetze kommt es zum Absturz oder die Programme lassen sich nichtmal compilieren.
Ich benötige folgendes:
-Eine Objekt, dass unbegrenzt viele Elemente abspeichert.
-Während des Programms neue Elemente anfügt.
-Den einfachen gezielten Zugriff auf einzelne Elemente ermöglicht.
-Das löschen von Elementen an beliebiger Stelle ermöglicht.
Bisher habe ich dafür den vector verwendet, doch er erscheint mir dafür irgendwie ungeeignet. Kann mir da jemand helfen?
MFG
Kaiser206---
-
27.09.09 13:36 #2
- Registriert seit
- Apr 2005
- Beiträge
- 191
Hallo,
alle Klassen eignen sich für beliebige Mengen Elemente. Jede hat jedoch so ihre Eigenheiten.
Nehmen wir mal vector: Er bietet den schnellstmöglichen Zugriff über Indices, ist aber langsam, wenn neue Elemente zugefügt oder gelöscht werden. Der Grund ist, dass ein vector immer an 1 Stück im Speicher untergebracht wird. Reicht der vorgesehene Speicher nicht aus, wird ein größerer Speicher angefordert und der komplette Inhalt des alten Speichers in den neuen kopiert. Deshalb kann ein einzelnes push_back() ggf. zu langen Laufzeiten führen. Günstig ist, wenn man vorher schon weiß, wie groß der Vektor werden wird. Dann kann mit reserve() Speicher in beliebiger Menge vor-reserviert werden.
lists und deques sind besser für häufiges Löschen/Sortieren/Hinzufügen, da dort alles über Zeiger läuft. Aber der Zugriff ist hier für "Elemente mittendrin" langsam, da erst eine Zeigerliste durchgehangelt werden muss, um das x-te Element zu finden.Grüße OS
-
Hallöchen,
mein Vorredner hat vollkommen recht.
Die Frage ist wie oft du Objekte löschen bzw. hinzufügen musst und wie wichtig der direkte Zugriff auf Objekte sind?!
std::list erfüllt alle Punkte optimal, nur halt nicht den Zugriff übern index, so dass du gezwungen bist mit nem iterator dadurch zu laufen...
Lieben Gruß
RuFF
-
29.09.09 15:56 #4
Moin,
schau mal hier, vlt. hilft Dir das weiter :
http://www.namespace-cpp.de/C++/kennen/stl.htm
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
Ähnliche Themen
-
[C] struct list vs. std::list?
Von posi90 im Forum C/C++Antworten: 1Letzter Beitrag: 23.11.10, 19:29 -
[c++] Problem mit STL (list, vector sort(),etc..)
Von radazong im Forum C/C++Antworten: 4Letzter Beitrag: 15.10.07, 21:52 -
Vector in Vector geht nicht
Von TimN im Forum C/C++Antworten: 3Letzter Beitrag: 10.05.07, 19:19 -
eigenes JTable Modell mit Übernahme des Vector Vector Konstruktors
Von Malte Roessner im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 8Letzter Beitrag: 02.06.06, 12:31 -
was für ein TFT ist der richtige ?
Von zirag im Forum HardwareAntworten: 1Letzter Beitrag: 02.03.04, 20:22





Zitieren
Login






