std::vector to C-array -> ist das langsam?
-
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-arrayODER:
* fange ich gleich von anfang an C-konform auf C-arrays zu arbeitenDa 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
)Danke euch!
-
du brauchst nichts kopieren. einfach &vec[0] übergeben
-
ein vector speichert seine daten in einem array - überall dort, wo deine C funktionen also einen pointer erwarten, kannst du schlicht &v[0] übergeben.
-
ja end geil

danke
-

funktioniert das umgekehrt auch?
-
Nein.
-
Stimmt!
-
Luegner: Deine Zustimmung mindert die Glaubwürdigkeit.

