如何将`std :: vector <uchar>`保存到`std :: ostream`中?

Rel*_*lla 6 c++ stl vector ostream

我们已经创建并填充了一些std::vector<uchar>OpenCV的imencode例如.现在我们想要将它流式传输到一些http_lib中,例如可以采用某种类型的 ostream(ostringstream),或者我们只想在使用ofstream调试程序时保存.所以,我不知道如何把 std::vector<uchar>std::ostream

Ker*_* SB 11

用途write:

void send_data(std::ostream & o, const std::vector<uchar> & v)
{
  o.write(reinterpret_cast<const char*>(v.data()), v.size());
}
Run Code Online (Sandbox Code Playgroud)

ostream期待裸体char,但通过施放指针来处理uchars就好了.在旧版本的编译器可能不得不说&v[0]的不是v.data().

您可以将结果write()作为另一个std::ostream&bool如果您喜欢某些错误检查工具返回.