ich rufe in meinem C++ code eine C - funktion auf die selbstverständlich keine std::vectoren kennt. Da ich starke Array operationen machen muss bis ich an der c-funktion ankomme stehe ich jetzt vor der entscheidung: * Benutze ich stl container auf welchen z.B remove operationen einfach zu realisieren sind und kopiere ganz am ende (vor dem c-funktions aufruf) den resultierenden vector in ein c-array
ODER: * fange ich gleich von anfang an C-konform auf C-arrays zu arbeiten
Da ich performant (in schnelligkeit) bleiben muss würde ich gern wissen ob der Zeitverlust durch das kopieren vernachlässigbar wird oder gar vielleicht die Benutzung der STL container schneller zum Ziel führt (das hauptproblem sind die Löschoperationen - bei einem vector gibt es ja ein remove - glaube dass die stl das effizienter macht als ich es je schaffe :leak: )
Du brauchst nicht kopieren. Du kannst die Adresse des ersten Elements benutzen. Diese ist gültig, solange der Vector nicht vergrößert oder verkleinert wird (explizit oder implizit).
Ansonsten: natürlich wäre das Kopieren langsam, für sich genommen. Ob es insgesamt gesehen den Flaschenhals darstellt, ist eine andere Frage. -- Reden ist Schweigen und Silber ist Gold.Dieser Post wurde am 23.08.2006 um 10:25 Uhr von stephanw editiert.