У меня есть std::stringstream ss;
, содержащий двоичные данные, которые я хочу поместить в std::vector<unsigned char> my_vector;
.Затем я хочу взять my_vector
и использовать его для создания нового std::stringstream new_ss
, идентичного ss
.
Я попытался сделать что-то похожее на ответы из этого вопроса:
Есть ли более эффективный способ установить std :: vector из потока?
и этот вопрос:
C ++: вектор в stringstream
, заканчивающийся:
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());
, но это не решило проблему.
Буду очень признателен за любые идеи о том, что может быть не так, или советы о том, как лучше решить эту проблему.