Re[2]: Проверка vector<char> на "читаемось"
От: dosik Россия www.dosik.ru
Дата: 06.06.16 16:06
Оценка:
Здравствуйте, jahr, Вы писали:

J>Здравствуйте, dosik, Вы писали:


D>>Быть может есть что-то более элегантное и быстрое?


J>Не знаю, насколько это элегантно-быстро, но есть такой способ, например:


J>
J>using namespace std;
J>vector<char> buf;
J>// fill data
J>string res;
J>copy_if(buf.begin(),  buf.end(), back_inserter(res), [](char c){ return isprint(c) || isspace(c);});
J>


Двух зайцев одним выстрелом ))) Интересно!
Единственное, что добавил бы:
    res.reserve(buf.size());

на случай "сильно гигантского" буфера, чтобы не происходили переаллокации при копировании.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.