void replace(vector<string> my_vector_2, string old, string replacement){
vector<string>::iterator it;
for (it = my_vector_2.begin(); it != my_vector_2.end(); ++it){
if (*it==old){
my_vector_2.erase(it);
my_vector_2.insert(it,replacement);
}
}
}
Quindi, mi piacerebbe che questa funzione sostituisse tutte le occorrenze della stringa precedente nel vettore con la sostituzione delle stringhe. Ma quando si chiama questa funzione, semplicemente non cambia affatto il vettore. Non sono sicuro di utilizzare la cancellazione e di inserire correttamente le funzioni. Qualche idea?Sostituzione di elementi nel vettore utilizzando la cancellazione e inserimento
Non dovresti passare il vettore come _reference_? –
Ah amico, mi sento così stupido in questo momento .... Grazie! –
Non è necessario cancellare e inserire. Assegna semplicemente: '* it = replacement;'. Ciò elimina qualsiasi problema riguardante l'invalidazione dell'iteratore e rimuove un po 'di zangole per rimuovere un elemento, quindi apre un foro per l'inserimento dove quell'elemento era. –