On Saturday 16 November 2002 20:12, Martin Oehler wrote:
Hi!
Am Sam, 2002-11-16 um 18.10 schrieb Sebastian Huber:
warum sollen STL Vektoren weniger effizient als C-Felder sein? Intern arbeiten die Vektoren ja auch mit Feldern und der Indexoperator ist eine inline-Funktion. Ich denke, dass es da keine Effizienzunterschiede gibt.
Mach doch mal 10^9 Zugriffe auf ein C-Array und auf einen STL-Vektor.¹ Solange ich den Kram nicht optimiert übersetze (und damit eine nummerische Genauigkeit jenseits von gut und böse in Kauf nehme), ist mein nicht-STL Array um einiges schneller. Mit Optimierung sind beide etwa gleich schnell (gcc3.2).
Das ist klar, da ohne Optimierung keine Funktion (also auch der Indexoperator) inline generiert wird. Warum bekommst du ohne Optimierung numerische Ungenauigkeiten?
In Bernhards Fall ist das nicht interessant, da er ja schließlich integer in seine Struktur pflanzt.
CU, Martin
¹) z.B. ganz billig mit Schleife und Zeitmessung um die Schleife herum