Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Listen ... ?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
18.10.2004, 13:17 Uhr
BartS



Hallo,

sagt mal gibt es in Visual C++ 6.0 schon eine Klasse für Listen oder muss ich mir die erst selber programmieren.
Ich komme von JAVA und dort gab es verschiedene Arten von Listen (z.B. ArrayList) schon fertig zur sofortigen Benutzung.

Habt vielen Dank
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.10.2004, 13:33 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


std::vector
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.10.2004, 13:36 Uhr
virtual
Sexiest Bit alive
(Operator)


std::vector ist ein Vector!
std::list ist eine Liste!
Diese haben lediglich eine Ähnlichkeit hinsichtlich der tatsache, daß man was in sie hineintuen kann, hinsichtlich Laufzeitverhalten sind sie sehr unterschiedlich!
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 18.10.2004 um 13:40 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.10.2004, 14:10 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Oh sorry, dachte der vector wäre ne normale Liste.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.10.2004, 14:27 Uhr
(un)wissender
Niveauwart


Darum heißt er ja auch vector....
Ein Vektor ist immer etwas gerichtetes, list ist potentiell chaotisch.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
18.10.2004, 14:38 Uhr
virtual
Sexiest Bit alive
(Operator)


@(un)wissender
Häh?? Meine Listen haben immer eine definierte Ordung.

@Guy

Also der prinzipielle Unterschied ist eigentlich der, daß eine liste eben eine Doppelverkettete Liste ist, wie man sie überall in den Kinderbüchern beschrieben findet: zu jedem Element gibt es einen Verweis auf den Vorgänger und zu dem nachfolger.

Ein vektor braucht diese Verweise nicht, da liegen die Elemente direkt hintereinander, dh es wird ein ziemlich großer Speicherblock für diese Elemente besorgt und da eins nach dem anderen reingeklatscht.

Man kann sich nun überlegen, welche Unterschiede sich daraus ergeben:
1. Einfüge/entfernen Operationen sind bei einer Liste deutlich schneller. Je komplexer die in der Liste/Vektor enthaltenen Objekte sind, desto mehr macht sich dieser Unterschied bemerkbar. Gleiches gilt für die Anzahl der Objekte.

2. Eine Liste hat einen manchmal nicht ganz vernachlässigbaren Speicheroverhead. Wenn Du zB auf einem typischen 32 Bit Rechner arbeitest und einfach nur integer Wert abspeicherst, liegt der Speicherberaf eines Vectors gegenüber einer Liste bei 33%!

3. Das durchlaufen der einzelnen Elemente durch eine Liste ist langsamer und - da man keinen index Zugriff auf die Liste hat (op[]), ist dieser auch umständlicher.

Nichtsdestotrotz (ich liebe dieses Wort!) wird leider std::vector viel zu oft verwendet, an Stellen, wo sich eher eine List empfehlen würde.

Oft ist es auch eine gute Strategie, zunächst eine "Ansammlung" von Objekten als list aufzubauen und erst später, wenn die Sammlung komplett ist, in einen std::vector zu verwandeln. Wir hatten hier mal vor einiger Zeit einen Performancevergleich bzgl. Sortieren, der so manchen std::vector Verfechter das fürchten gelehrt hat....

Das Thema ist komplexer, als man meinen könnte.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 18.10.2004 um 14:40 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
18.10.2004, 14:49 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Ah verstehe. Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
18.10.2004, 18:37 Uhr
(un)wissender
Niveauwart


@virtual
Die Ordnung bezieht sich hier auf die Adressen, die im Vektor sequentiell vorliegen und in einer Liste nicht zwangsläufig geordnet sind.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: