У меня есть метод, который должен итерации map
вперед или назад, в зависимости от состояния. себя операции независимы от направления, таким образом, я хотел бы быть в состоянии сделать что-то вроде этого:reverse_iterator и абстракция итератора в переменной
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
}
Я знаю, что я должен быть в состоянии сделать это с помощью функции шаблона (? справа), но это походит на бит переборки.
Есть ли способ, которым я мог бы сделать это в одной функции без шаблона? Может быть, с использованием <algorithm>
?
И внутри ' ', у вас есть шаблоны. –
LogicStuff
@LogicStuff Мне это известно, но мне не нужно писать их - просто лямбда, что я считаю более чистым (читабельность мудрым) в этом случае – slawekwin
Вы можете увидеть [это] (http: //www.cplusplus .com/reference/map/map/begin /) и читаем пример, они используют итератор. –