У меня есть std::stringstream ss;
, содержащий двоичные данные, которые я хочу поместить в std::vector<unsigned char> my_vector;
. Затем я хочу взять my_vector
и использовать его для создания нового std::stringstream new_ss
, идентичного ss
.
Я попытался сделать что-то похожее на ответы на этот вопрос:
Есть ли более эффективный способ установить std::vector из потока?
и этот вопрос:
в итоге:
std::copy(std::istream_iterator<unsigned char>(ss),
std::istream_iterator<unsigned char>(),
std::back_inserter(my_vector));
тогда:
std::copy(my_vector.begin(),
my_vector.end(),
std::ostream_iterator<unsigned char>(new_ss));
но ss
и new_ss
не одно и то же. Я подозревал, что проблема может быть связана с игнорированием пробелов, поэтому вместо этого я попытался создать вектор следующим образом:
std::string const& s = ss.str();
my_vector.reserve(s.size());
my_vector.assign(s.begin(), s.end());
но это не решило проблему.
Будем очень признательны за любые идеи о том, что может быть не так, или советы о лучшем способе решения этой проблемы.
std::ios::binary
для создания строковых потоков? - person eerorika   schedule 16.12.2018