Я хочу написать генератор строк в C ++, который позволил бы мне возобновить генерацию строк из одной строки, которую я передаю функции на входе. Например, когда я даю функции длину строки = 20, я подожду некоторое время и остановлю свою программу. Я не хочу начинать заново со строки "aaaaaaaaaaaaaaaaaaaa", но я бы предпочел начать следующее выполнение с некоторыми ранее созданная строка (записывается где-то, когда программа останавливается).
Вот мой код, как я делаю это прямо сейчас:
void printAllKLengthRec(char set[], string prefix, int n, int k)
{
if (k == 0)
{
cout << (prefix) << endl;
return;
}
for (int i = 0; i < n; i++)
{
string newPrefix;
newPrefix = prefix + set[i];
printAllKLengthRec(set, newPrefix, n, k - 1);
}
}
void printAllKLength(char set[], int k, int n)
{
printAllKLengthRec(set, "", n, k);
}
int main()
{
cout << "Test\n";
char set2[] = { 'a', 'b', 'c', 'd', '.', '\\', '_', 'f' };
int k = 20;
printAllKLength(set2, k, 8);
}
Кроме того, в этой рекурсивной функции строки генерируются «с конца» (например, изменяется последняя «а», затем вторая последняя «а» и т. Д.),
Есть ли у вас какие-либо предложения, как изменить его, чтобы генерировать строки "с самого начала"?