Ich habe zwei vectoren, einer enthält doubles, der andere ints. Beide sind gleich lang. Ich möchte einen bestimmten Wert aus beiden löschen, und zwar folgendermaßen: ich suche den int-vector nach einem bestimmten eintrag ab (z.B. 7), dann nehme ich den index an dem die 7 liegt und lösche diesen index aus dem double- und dem int-vector. Wenn im int-vector die Zahl nicht vorhanden ist lösche ich nichts. Zur verdeutlichung nochmal mit kleinem Beispiel:
int_vec (1, 4, 6, 7, 9)
double_vec (1.0, 33.3, 28.5, 77.3, 100)
wenn ich also den index suche in dem der int-vector die 7 hat bekomme ich als ergebnis eine 4 und lösche folglich aus dem double-vector die 77.3
Das ganze lässt sich zwar über eine schleife die man beim ensprechenden index abbricht und die Einträge löscht. Ich möchte es aber gerne mit dem find-algorithmus aus der STL machen. Und hier fangen die Probleme an: find() gibt mir einen Iterator der Art
Code:
vector<int>::iterator
zurück und nicht den gesuchten index! Ich kann zwar mit
Code:
pos = find(int_vector.begin(), int_vector.end(), gesuchte_zahl)
int_vector.erase(pos)
die zahl aus dem einen vector löschen, beim double vector bekomm ich aber ein problem da der iterator ja ein pointer und keine zahl ist. Ausserdem verlangt der double-vector einen iterator der Art
Code:
vector<double>::iterator
Das heisst
Code:
double_vector.erase(pos)
geht so schief das er nicht mal kompilieren will. Kann mir jemand verraten wie ich aus dem Iterator den mir find() zurück gibt den index heraus bekomme? Danke schonmal...
Lesezeichen