Заворачивает векторвнутри потока? - PullRequest
3 голосов
/ 14 февраля 2011

У меня есть функция, которая принимает в качестве аргумента std :: istream & и записывает преобразованный поток в std :: ostream &.

С другой стороны, у меня есть другая функция, которая принимает аргумент вектора.

Моя цель - передать выходные данные первой функции второй функции.

Есть ли что-то из коробки, чтобы сделать это? Иначе, как я могу это легко реализовать?

Спасибо

Редактировать: вот две функции подписи:

functionA(std::istream& _in, std::ostream& _out);
functionB(std::vector<unsigned char>& data);

Звонящий будет выглядеть так:

std::vector<unsigned char> data;
std::istrstream stream_in("input message");
std::ovectorstream stream_out(data); // ???
functionA(stream_in, stream_out);
functionB(stream_out.vector());

1 Ответ

5 голосов
/ 14 февраля 2011

Я думаю, что-то подобное может работать

std::vector<unsigned char> data;
std::istringstream stream_in("input message");
std::stringstream stream_out;
functionA(stream_in, stream_out);
const std::string& str_out(stream_out.str());
copy(str_out.begin(), str_out.end(), std::back_inserter(data));
functionB(data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...