Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » z.b. vector vs. deque

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
14.02.2003, 17:09 Uhr
Christian
C/C++ Master
(Operator)


Hallo

Da mein derzeitiges Lieblingsthema die STL ist, mal eine Frage.
Die interne Verwaltung der Variablen der Container ist ja ziemlich unterschiedlich und deshalb eben auch die Ausführzeit, die ein verschiedene Container für die gleiche Tätigkeit brauchen.
Bsp.:

Ich habe einmal einen Vector und einen Deque erstellt und bei dem Vector mittels insert an die erste Position mittels einer Schleife (100000 mal) eine Variable eingefügt. Bei dem Deque genauso. Außerdem hab ich die Zeiten gemessen, die dafür gebraucht werden:

vector: 152.09 Sekunden
deque: 0.05 Sekunden

Was mich im ersten Moment schon sehr überrascht hat. Klar wenn man überlegt, dass der Vector immer länger braucht für den Vorgang, je mehr Elemente bereits vorhanden sind, und der deque sich demgegenüber sehr leicht tut.

Was ich jetzt eigentlich Fragen wollte, :-), wenn ihr die STL verwendet im großem Umfang, achtet ihr da immer darauf, wie lange Operationen dauern, was man vorraussichtlich damit machen will etc.

Und nochwas, wenn ich 100000 mal ein push_back ausführe erhalte ich:

vector: 0.17 Sekunden
deque: 0.05 Sekunden

Das iritiert mich auch deshalb weil in meinem STL Buch der Autor schreibt, dass wenn nur Elemente am Ende eingefügt würden die bei der Entscheidung Vector Deque für einen Vector sprechen würde.

Grüße, Chris
--
Grüße, Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.02.2003, 17:44 Uhr
virtual
Sexiest Bit alive
(Operator)


Alo ich acht schon darauf, welche Container ich verwende.

Was das push_back angeht:
In einer Realen Anwendung würdest Du wohl ehernicht nur einfach push-backen, sondern ggg, eine Abschätzung machen, wie viele Elemente noch in den Container kommen. Während du bei vector dann ein reserve machen kannst und damit diesen stark beschleunigen kannst, hast Du diese möglichkeit bei einer deque nicht.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.02.2003, 12:57 Uhr
Christian
C/C++ Master
(Operator)


Hi virtual!

Okay stimmt, ich solte genauer lesen. Dort steht:
Wenn absehbar ist, wie viele Elemente aufgenommen werden müssen, oder die Wahrscheinlichkeit, dass eine vorgegebene Containergröße überschrittenwird, gering ist, dann geht die Tendenz zum Vektor.

Danke.
--
Grüße, Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


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: