Ich habe eine Methode, die eine map
vorwärts oder rückwärts iterieren soll, abhängig von einer Bedingung. Operationen selbst sind von der Richtung unabhängig, so würde ich so etwas können, gerne tun:reverse_iterator und Iterator Abstraktion in einer Variablen
std::map<int, int> some_map;
auto iter = some_condition ? some_map.begin() : some_map.rbegin();
for (; iter != some_condition ? some_map.end() : some_map.rend(); ++iter)
{
//something to do with *iter
}
Ich weiß, soll ich in der Lage sein, dies mit Template-Funktion zu tun (? Rechts), aber es scheint wie ein ein bisschen Overkill.
Gibt es einen Weg, ich könnte es in einer Funktion tun, ohne Vorlage? Vielleicht mit der Verwendung von <algorithm>
?
Und innen ' ', Sie haben Vorlagen. –
LogicStuff
@LogicStuff Ich bin mir dessen bewusst, aber ich muss sie nicht schreiben - nur ein Lambda, das ich in diesem Fall als sauberer (Lesbarkeits) betrachten würde – slawekwin
Sie können dies sehen (http: //www.cplusplus .com/reference/map/map/begin /) und lesen Sie das Beispiel, sie verwenden Iterator. –