Как передать вектор строк в лямбду и скопировать символы в вектор?
Здесь я собираю вектор как ссылку, но как только for_each завершен, все
строк вВектор "token" пуст, поэтому "final" строка пуста.
string encryption(string s) {
string test;
std::copy_if(s.begin(), s.end(), back_inserter(test), [](char c)
{
if (isspace(c))
{
return false;
}
return true;
});
int size = s.size();
float number = sqrt(size);
int row = ceil(number);
int col = floor(number);
while ((row * col) < size)
{
row++;
}
std::vector<string> token;
token.reserve(row);
for_each(test.begin(), test.end(), [&](char c) mutable
{
static int count = 0;
token[count%row] += c;
cout << token[count%row] << endl;
count++;
});
stringstream final;
std::copy(token.begin(), token.end(), std::ostream_iterator<string>(final, " "));
return final.str();
}