https://en.cppreference.com/w/cpp/ranges/reverse_view
а есть что-нибудь ещё более обобщённое чтобы принимало начальное, конечное значение и шаг?
ой нет это не то
В смысле? iota | reverse не подходит?
там массив на входе нужен, а не диапазон значений
это скорее вопрос из интереса
Я не понимаю о чем вы
просто думаю могли бы давно запилить замену классическому for через range based for, что упростило бы многие частые случаи
Замену в каком случае?
Пока ещё нет: [P2016R0]
P2016R0: A step parameter for iota (by Corentin Jabot) (2020-01-14) (Related: GitHub issue)
ну iota принимает на вход начальное и конечное значение, и если сунуть её в range based for то переменная там все значения между начальным и конечным, и никаких контейнеров нет
for (int i : std::views::iota(1, 10) | std::views::reverse) std::cout << i << ' ';
но вообще было бы лучше если там был шаг, и ещё лучше чтобы знак шага вычислялся автоматически...
Ты про что-то вроде for(auto&& [el, index] : with_index(container, step) ?
нет, я про случай без контейнеров
в других языках конструкция for это зачастую просто объявление переменной, начальное конечное значение и шаг
что-то не суётся...
cpp code: for (int i : std::views::iota(1, 10) | std::views::reverse) std::cout << i << ' '; output: 9 8 7 6 5 4 3 2 1
хотя стоп, я же ещё не компилил, возможно, это шлангопарсер шалит
И вруби 20ый стандарт, если не врублен)))
скомпилировалось, это парсер шланга не втыкает
врублен, в симейке врубал
Обсуждают сегодня