(vectoren)
-
Tag,
ich habe gelernt das Arrays böse sind... also würde ich ja gerne einen Vector nehmen aber...
es gibt gewisse Funktionen "recv()" (WinSock2) die einen char Pointer (Buffer für den Empfang)Nur wie bekomm ich jenen aus nem Vector?!
Danke im Voraus!
Mfg Mr. Washington
-
Afaik ist garantiert, dass die Elemente des Vektors auch Vektoriell hintereinander liegen.
vector<char> foo; deineFunktion (&*foo.begin());
-
vector<char> foo(1024); blubb(foo.begin());
Das triffts ehr aber danke für den Tipp mit .begin()
PS: Ist das so in Ordnugn (Frage @Profis!)
-
niemand garantiert, das vector<char>::iterator char * entspricht. Das mag bei deiner Implementierung so sein, bei einigen aber nicht. um ein &* wirst du nicht herum kommen, wenn du portabel sein willst.
-
foo.begin() ist falsch
richtig ist
&*foo.begin()
oder
&foo[0]
-
Aha ok also ist &foo[0] auch ok?! Oder nur "Notlösung"?
ich fand das &* halt irgentwie "unansehnlich..."
-
&foo[0] ist spitze
-
Ok Danke
-
Ich bin's noch einmal.
Is es legitim einfach: &foo[7] zu schreiben ohne an ihm "rumzuschneiden" wenn ich den "SubVector" erst aber der 7ten Stelle benötige?
Oder gibt es hier was schöneres?
-
&foo[7] ist legal, wenn foo.size()>7 ist.
Beachte: dies geht nur bei std::vector - sonst bei keinem anderen Container
-
-> Thx
Es ist schön das es Foren wie dieses gibt!
-
/ Hat sich erledigt /