Я сталкиваюсь с проблемой, что первый результат перестановки вводится в вектор, но на следующей итерации цикла for_each
размер вектора сбрасывается до {size = 0}
вместо увеличения его размера и вставки вторая перестановка и тд. Как мне обойти это? Я пытался использовать цикл while, но я не мог понять, каковы условия для него.
Я также хотел спросить, поскольку позже мне нужно будет сравнить значения в этом векторе с вектором, содержащим словарь, позволит ли мне текущий код (при правильной работе) сделать это.
Это мой код:
for_each(permutations.begin(), permutations.end(), [](string stringPermutations)
{
vector<string> permutations;
permutations.push_back(stringPermutations);
cout << stringPermutations << endl;
});
Так что, похоже, лямбда всегда создает новый локальный вектор при каждом вызове. Если я помещу vector<string> permutations;
вне лямбды, я получаю ошибку с permutations.push_back(stringPermutations);
. Так как же мне извлечь stringPermutations
из лямбды в общедоступный вектор?
Спасибо за помощь и отзывы.