Existe uma maneira mais eficiente de definir um std :: vector de um fluxo?

Atualmente, eu defino o valor de umstd::vector<char> de umstd::ostringstream do seguinte modo:

void
foo(std::vector<char> &data, std::stringstream &stream) {
  data = std::vector<char>(stream.str().begin(), stream.str().end());
}

Eu estou querendo saber se existe uma maneira mais eficiente de fazer isso com STL em C ++ ou se o método que eu dou aqui é considerado adequado? Eu estaria melhor usandostd::stringstream em vez de?

questionAnswers(4)

yourAnswerToTheQuestion