Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » std::vector to C-array -> ist das langsam?

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
22.08.2006, 21:34 Uhr
~Newbi3
Gast


Hallo,

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: )

Danke euch!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.08.2006, 10:22 Uhr
stephanw
localhorst


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).


C++:
void someAlgorithm( int* array, unsigned size ); // erwarted c-array

std::vector<int> vec;
// ...

someAlgorithm( & (vec[0]), vec.size() );



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.
 
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: