Stop bei den letzten Element-Iteratoren C ++

7

Was ist die eleganteste Art, eine Schleife auszuführen und nach dem vorletzten Element anzuhalten (in C ++ 11)?

Hinweis: Ich meine für bidirektionale Iteratoren; Random Access-Iteratoren sind natürlich ein trivialer Spezialfall, weil sie + und - Operatoren haben.

%Vor%     
user 17.06.2012, 18:40
quelle

3 Antworten

14

Verwenden Sie die Funktion std::prev :

%Vor%     
R. Martinho Fernandes 17.06.2012, 18:42
quelle
5

In C ++ 03 wäre es gewesen:

%Vor%

In C ++ 11 gibt es nichts grundlegend anderes, es ist nur weniger ausführlich ..:

%Vor%     
ildjarn 17.06.2012 18:45
quelle
1

Eine leichte Verbesserung gegenüber R. Martinho Fernandes Antwort:

Verwenden Sie die Funktion std::prev :

%Vor%

Dies berechnet nur: std::prev(x.end()) einmal.

    
quamrana 17.06.2012 18:47
quelle

Tags und Links