Название: Вложенные циклы Отправлено: Igors от Сентябрь 15, 2021, 15:47 Добрый день
Неск раз повторяется такая этажерка (псевдокод) Код Да, и итераторы могут быть const или нет. Не то чтобы великая проблема, можно перетерпеть, но хотелось бы "поызячнее". Может есть такое в современном C++ ? Спасибо Название: Re: Вложенные циклы Отправлено: ksk- от Сентябрь 16, 2021, 12:26 Подойдут, возможно, ranges + join.
https://en.cppreference.com/w/cpp/ranges/join_view (https://en.cppreference.com/w/cpp/ranges/join_view) Название: Re: Вложенные циклы Отправлено: Igors от Сентябрь 16, 2021, 15:08 Подойдут, возможно, ranges + join. Прочитал справочник, по-моему это посвящено др случаю (тоже не раз встречался). А здесь я вынес все циклы в метод в который подаю std::function. Не бог весть что, но приятнееhttps://en.cppreference.com/w/cpp/ranges/join_view (https://en.cppreference.com/w/cpp/ranges/join_view) Название: Re: Вложенные циклы Отправлено: __Heaven__ от Сентябрь 17, 2021, 10:55 Можно попробовать самому написать функцию, которая будет принимать контейнер и функтор
Название: Re: Вложенные циклы Отправлено: qtkoder777 от Сентябрь 21, 2021, 00:46 По теории алгоритмов любое число вложенных циклов можно преобразовать в 2 вложенных цикла.
Название: Re: Вложенные циклы Отправлено: Igors от Сентябрь 21, 2021, 10:51 По теории алгоритмов любое число вложенных циклов можно преобразовать в 2 вложенных цикла. Прошу исполнить :)Название: Re: Вложенные циклы Отправлено: qtkoder777 от Сентябрь 22, 2021, 09:37 Код
Название: Re: Вложенные циклы Отправлено: Igors от Сентябрь 22, 2021, 12:21 Несерьезно
Название: Re: Вложенные циклы Отправлено: qtkoder777 от Сентябрь 22, 2021, 14:50 Несерьезно Вместо qDebug делай шо хош. Значения i,j,k,l как в четверном цикле.Название: Re: Вложенные циклы Отправлено: qtkoder777 от Сентябрь 22, 2021, 14:54 По непрямоугольному массиву будет 2 вложенных цикла.
Название: Re: Вложенные циклы Отправлено: Igors от Сентябрь 22, 2021, 15:25 Вместо qDebug делай шо хош. Значения i,j,k,l как в четверном цикле. Та ну нафиг такое "кодирование". Еще и пишете без пробелов :'(По непрямоугольному массиву.. Не знаю такого "непрямоугольного" ???Название: Re: Вложенные циклы Отправлено: _Bers от Январь 11, 2022, 14:50 Название: Re: Вложенные циклы Отправлено: Day от Январь 12, 2022, 17:19 Igors, возможно, вам понравится такая идея. Если у нас есть многомерный массив, скажем int a[5][3][4], то проход по нему можно устроить так.
Массив представить в линейном виде int *p = &a[0][0][0] "Настоящий"(тройной) индекс можно представить в виде числа в смешанной с/с по основанию (5,3,4) Арифметика представления числа в смешанной .с/с довольно проста. И проходить цикл уже линейно for(i=0; i<5*3*4; i++) ... p... не знаю, как быть с итераторами, особенно, если они разной природы... Название: Re: Вложенные циклы Отправлено: Igors от Январь 13, 2022, 12:05 Если у нас есть многомерный массив, скажем int a[5][3][4] C массивом легко оформить ф-цией/методом, но это случай редкий, обычно перебираемые контейнеры самые разные. ... не знаю, как быть с итераторами, особенно, если они разной природы... |