Algorithmen der STL verweigern ihren Dienst
-
..und vielleicht solltest Du auch b etwas zuweisen

char* a = "Arafat"; char* b = " und was danach kommt";
-
Öhm, nee. Das ganze Beispiel ist vermurkst. Nirgendwo wird ein vector-Objekt erstellt. Da sind so Aussagen wie die von 1310-Logik verfrüht.
-
Außerdem sind a und b vom Typ char* und keine vector<char*> und können also auch nicht an die Funktion übergeben werden.
Versuch doch das selbe mal mit strings:
void f (const string & a, string & b) { copy (a.begin(), a.end(), b.begin()); }; int main() { string a = "blablabla"; string b = "hfjkasdhfjkadshjfhdsjk"; cout << a << "\t" << b << "\n"; f(a,b); cout << a << "\t" << b << endl; }
-
Jester du solltest vielleicht noch erwähnen, dass b bereits genügend speicher reserviert haben muss.
-
Wenn nicht, ists auch nicht schlimm: back_inserter schafft Abhilfe.
void f (const string & a, string & b) { copy (a.begin(), a.end(), back_inserter(b)); }; int main() { string a = "blablabla"; string b; cout << a << "\t" << b << "\n"; f(a,b); cout << a << "\t" << b << endl; }
-
..und vielleicht solltest Du auch b etwas zuweisen

sonst macht es einfach keinen Sinn
-
1310-Logik schrieb:
..und vielleicht solltest Du auch b etwas zuweisen

sonst macht es einfach keinen Sinn
Ich glaub du hast nen Fehler in der Logik:
void f (const string & a, string & b) { copy (a.begin(), a.end(), back_inserter(b)); }; int main() { string a = "blablabla"; string b; cout << a << "\t" << b << "\n"; f(a,b); cout << a << "\t" << b << endl; }Ausgabe:
blablabla
blablabla blablabla
-
1310-Logik: Jetzt lass mal deine Augenrollereien. Ich weise b etwas zu.
-
ja sorry
ich sehs ja jetzt auch
*indereckestehundschäm*
-
Kein Wunder, dass die Algorithmen bei mir ihren Dienst verweigert haben...
Vielen Dank für die Hilfe!Alex