Czy istnieje bardziej skuteczny sposób na ustawienie std :: vector ze strumienia?

Obecnie ustawiam wartość astd::vector<char>&nbsp;zstd::ostringstream&nbsp;następująco:

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

Zastanawiam się, czy istnieje bardziej skuteczny sposób na zrobienie tego w STL w C ++ lub czy metoda, którą tu podam, jest odpowiednia? Czy lepiej byłoby użyćstd::stringstream&nbsp;zamiast?