Insert bei Vector<string>
-
Hallo,
Ich habe einen vector<string> dem ich an einer bestimmten stelle einen neuen String einfügen möchte.
ich habe dazu folgende function geschrieben:
void insert(int pos, string newStr)
{
strVector.insert(pos, newStr);
};Dies fuktioniert aber nicht, weil vector<>.insert einen Iterator erwartet und keinen Int. Wie bekomme ich einen Iterator der mitten im Vector steht. begin() und end() liefern ja nur Iteratoren am Anfang bzw. ende. Und manuell den Vector dorthin zu verschieben ist auch keine lösung (bei einem langen Vector, verbrät das nur unnötig Zeit). Wie sorge ich also dafür, dass mein String an der entsprechenden Stelle im Vector gespeichert wird?
-
Schreib dein insert so:
void insert(size_t p, const string& new_s, vector<string>& v) { v.insert(v.begin() + p, new_s); // fügt new_s an Index p im vector v ein. }Caipi
-
vector<string> v; v.push_back("one"); v.push_back("two"); v.push_back("three"); v.insert(v.begin()+2, "two_and_a_half");Kurt
edit: jetzt hab ich mich soo beeilt...
-
Danke.
