Vector Iterator Adresse Ändern
-
Hallo Zusammen,
Ich habe ein String Vector erstellt und ihn mit push_back gefüllt.
Ich will nun jetzt mit einen Iterator die Vector-instanzen erreichen, die bearbeiten und wieder speichern. Wie geht das?
Ich habe so implementiert.
vector<string> linesVector; vector<string>::const_iterator linesVectorIt; string linStr; for(linesVectorIt=linesVector.begin(); linesVectorIt!=linesVector.end(); linesVectorIt++) { lineStr=*linesVectorIt; ...lineStr bearbeiten.... *linesVectorIt = lineStr; }Ich bekomm aber follgende Fehler:
error: passing 'const std::basic_string<char>' as 'this' argument of 'std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(const _CharT*) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>, std::basic_string<_CharT, _Traits, _Alloc> = std::basic_string<char>]' discards qualifiersKann jemand helfen?
-
1. Zeige die gesamte Funktion!
2. Benutze doch einfach non-const iteratoren und bearbeite den string direkt.
-
Schon mal drüber nachgedacht wofür das const bei const_iterator steht? Und warum bearbeitest du nicht gleich das, worauf der Iterator zeigt, anstatt es vorher zu kopieren?
Edit:
Zu spät..
Edit2@SeppJ:
Viel zu spät! :p
-
Du benutzt const-Iteratoren, willst aber den Inhalt ändern. Wie soll das gehen?
edit: Wie schreibt ihr anderen bloß immer so schnell...
cooky451 schrieb:
Edit2@SeppJ:
Viel zu spät! :pJa, echt. 1:54 Minuten nach theta und 20 Sekunden nach dir. Sehr schwache Leistung, ich muss mich schämen.
-
Vielen Dank.
Ihr seid HammerDie Erstellung einer Iterator habe ich einfach so gelernt und nie nachgedacht

-
spartakus schrieb:
Die Erstellung einer Iterator habe ich einfach so gelernt und nie nachgedacht

Dann hast du es nie gelernt sonder einfach nur abgetippt. Lernen ist auch immer mit Nachdenken verbunden.