Ich versuche, eine Funktion zu erstellen, die einen Vektor durch Verweis einnimmt, und wenn es einen Vektoreintrag 2 sieht, würde es den Eintrag löschen und durch 4 Kopien von 5 ersetzen.vector.insert passt den Vektor nicht an?
also, wenn der Vektor ist 222 (dann ist es Größe n = 3), ich will 555555555555 als den neuen Vektor
jedoch funktioniert es nur für die ersten, wenn der Index < n ist.
also gerade jetzt, würde es ändern, ein Vektor zu 555522 irgendwelche Ideen, wie man den Vektor Größe ändern?
void replace2 (vector <int>* a, int n){
for (int i = 0; i < n; ++i){
if ((*a)[i] == 2){
(*a).erase((*a).begin() + i);
for(int j = 0; j < 4; ++j){
(*a).insert((*a).begin() + i, 5);
}
}
}
}
[off topic] Verwenden Sie einen Verweis auf Ihren Vektor anstelle eines Zeigers. – Charles
Nach der ersten Iteration der Schleife ist '(* a) [i]' nicht länger gleich 2. Verbleibende Iterationen tun nichts. –
@Charles, wenn ich die Funktion aufrufen, ich ersetze2 (& a, 3) – shoestringfries