Ich versuche, ein Programm zu schreiben, wo einen Vektor gegeben, verwenden Sie Iteratoren, um die erste und letzte Nummer des Vektors zu vergleichen, dann zieht ein und vergleicht die nächsten. Ich habe die for-Schleife geschrieben, um das zu tun, aber bin mir nicht sicher, wie ich sie stoppen kann, sobald sie die Mitte des Vektors erreicht haben.Iterating durch einen Vektor zum Vergleich in C++
Für die for-Schleife Ich habe:
for (a = v.begin(), b = v.rbegin(); a != v.end(), b != v.rend(); a++, b++)
wo a
die Vorwärts-Iterator und b
ein rückwärts Iterator ist. Meine Annahme ist, dass ich den Zustand der for-Schleife ändern muss, aber ich bin unsicher was.
bedeuten Sie einige ‚is_palindrome‘ -Funktion? – xtofl
Zumindest sollten Sie die Bedingung ändern, um '&&' zu verwenden. – Iluvatar
Ihre Schleifenbedingung 'a! = V.end(), b! = V.Rend()' verwendet den Kommaoperator, um beide Unterausdrücke auszuführen, aber das Ergebnis der ersten ('a! = V.end()) ') wird weggeworfen und nur das Ergebnis des zweiten Ausdrucks wird verwendet. Was das "Erreichen der Mitte des Vektors" betrifft, könnte es sinnvoller sein, hier * Indizes * anstelle von Iteratoren zu verwenden. Dann wäre es leicht zu sehen, ob die Indizes den "Mittelpunkt" der Vektorlänge überschreiten. –