Is there a more efficient way to set a std::vector from a stream?
问题 Presently, I set the value of a std::vector<char> from an std::ostringstream as follows: void foo(std::vector<char> &data, std::stringstream &stream) { data = std::vector<char>(stream.str().begin(), stream.str().end()); } I'm wondering if there is a more efficient way to do this with STL in C++ or whether the method I give here is considered appropriate? Would I be better off using std::stringstream instead? 回答1: Your method invokes undefined behaviour . stream.str() returns a string by-value