vertauschen von 2 werten in einem vector
-
HALL0.
nehmen wir mal an, ich habe einen int vector und ich möchte nun 2 werte innerhalb dieses vectors vertauschen. gibt es dafür einen schönen befehl, mit dem man das leicht machen kann?
DANKE.
STICK.
-
befehle gibt es in C++ nicht. wohl aber eine funktion std::swap, die deinen anforderungen genügen müsste.
-
hmmm. ich glaube, ich mache hier irgendetwas falsch, denn der unten aufgeführte code ändert nichts im vector TEST. kann vielleicht noch jemand schauen? DANKE.
int main () { int i; vector <int> TEST; for (i=0;i<10;i++) TEST.push_back(i); std::swap(TEST.begin(),TEST.end()); }
-
Erstens versuchst du 2 iteratoren zu vertauschen (da nimmt man iter_swap) und zweitens ist end() kein gültiger iterator.
Edit: So geht das dann
int main () { int i; std::vector <int> TEST; for (i=0;i<10;i++) TEST.push_back(i); std::iter_swap(TEST.begin(),TEST.end()-1); }
BR
-
danke, funktioniert jetzt.
-
oder auch
std::swap(TEST.front(),TEST.back());