Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2023, 12:30   #1
Siserian
Новичок
Джуниор
 
Регистрация: 14.12.2019
Сообщений: 2
По умолчанию Мультипотоки генератор комбинаций

Здравствуйте, есть код, суть вопроса, как сделать что бы он в мультипотоках делал генерацию, затем ответ от генерации(каждого потока) направлял в специальную функцию, которая бы работала с каждым отдельно потоком.
(сохранять в вектор ответы не вариант гигов озу не хватит, поэтому буду обрабатывать инфу по факту поступления.)

Если ещё проще говорить, мне нужен генератор всех возможных комбинаций на мультипотоках, что бы я мог указать данные с каких генерим 'a', 'b', 'c' , мог бы указать длину, а ответ от генерации(каждого потока) записывался(перезаписывался) в переменную для её обработки;

Код:
std::string gen(std::vector<char> alphabet, std::size_t idx, std::size_t digits)
{
    std::string ret(digits, alphabet[0]);
 
    std::size_t alphas = alphabet.size();
    while (digits--)
    {
        ret[digits] = alphabet[idx % alphas];
        idx /= alphas;
    }
    return ret;
}
 
void gen_and_out(std::size_t n, std::vector<char> alphabet)
{
    std::size_t numbers = 1;
    std::size_t alphas = alphabet.size();
    for (std::size_t i = 0; i < n; ++i)
    {
        numbers *= alphas; // на каждом шаге чисел в alphas раз больше
        for (std::size_t cur = 0; cur < numbers; ++cur)
        {
            std::cout << gen(alphabet, cur, i + 1) << std::endl;
            workt(gen(alphabet, cur, i + 1));
        }
    }
}
 
void workt(std::string gen)
{
    ///code
    ///code
    ///code
    ///code
    ///code
    ///code
    std::cout << gen << std::endl;
}
int main()
{
    gen_and_out(50, std::vector<char>({ 'a', 'b', 'c'  }));
    return 0;
}
Siserian вне форума Ответить с цитированием
Старый 28.02.2023, 07:33   #2
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 960
По умолчанию

Siserian, я же предложил решение (не на этом сайте). Чем не подошло?
Алексей1153 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непрерывные вычисления в Excel. Генератор вычислений (итераций) и "генератор таймеров". Santa_Claus Microsoft Office Excel 0 14.10.2019 16:15
Генератор теней Box Shadow и генератор границы Border Radius xshutterxx HTML и CSS 2 26.04.2016 18:20
Генератор комбинаций символов в матрице.(Pascal). tenzik23 Помощь студентам 10 30.12.2013 06:51
таблица комбинаций Игорь_С Общие вопросы C/C++ 1 11.01.2013 15:26