Funktionen zum Umwandeln von Datenstrukturen?
-
Es ist ja eine schöne Sache, dass die STL soviele vorgefertigte Datenstrukturen zur Verfügung stellt.
Ich habe zur Zeit das Problem, dass man den Funktionen einer C - API die Daten trotzdem meistens als Array übergeben muss (d.h. die Funktionen erwarten idR, dass die Daten 'hintereinander' im Speicher liegen). Jetzt habe ich mich gefragt, ob es irgendwelche Funktionen gibt, die beispielsweise aus einem <vector> oder einer <list> ein Array machen. D.h. als Parameter soll die Funktion einen <vector> von irgendeinem Typen sowie einen Speicherbereich, den ich als Aufrufer zur Verfügung stelle, nehmen. Und nach Aufruf sollten die Daten 'hintereinander' in dem Speicherbereich stehen.Oder vielleicht auch einen Link zu einer Seite/Tutorial, das sich mit 'Umwandlung von STL-Containern in C - API - taugliche Arrays' beschäftigt, dann wäre mir auch schon geholfen.
-
std::copy( )?
greetz, Swordfish
-
Bei einer list<> hilft wohl nur umkopieren, weil die C-API mit deren Struktur nicht zurechtkommen dürfte, beim vector solltest du mit &v[0] an das drunterliegende Array herankommen (ich weiß, der Ansatz schrammt dicht am Standard vorbei).
PS: Und wenn's hart auf hart kommt, kannst du noch basic_string<> als vector-Ersatz verwenden

-
dann verwende ich nur noch <vector> ! thx !