Я хочу взять произвольное количество списков (например, [2, 1, 4 ....], [8, 3, ...], ...) и выбрать номера из каждого списка, чтобыгенерировать все перестановки.Например:
[2, 8, ...], [2, 3, ...], [1, 8, ...], [1, 3, ...], [4, 8, ...], [4, 3, ...], ...
Это легко сделать с помощью вложенных циклов for, но, поскольку я хотел бы, чтобы оно принимало произвольное числоПохоже, что списки должны быть жестко закодированы.По одному на каждый список.Кроме того, поскольку моя программа, вероятно, будет генерировать многие десятки тысяч перестановок, я хотел бы создавать одну перестановку за раз (вместо того, чтобы вычислять их все за один раз и сохранять результат в векторе).Есть ли способ сделать это программно?
Поскольку количество списков известно во время компиляции, я подумал, что, возможно, я мог бы использовать метапрограммирование на основе шаблонов.Однако это кажется неуклюжим и также не соответствует требованию «по одному за раз».Есть предложения?