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 |