我正在使用 C++ 中的 Boost::Serialization 库。当我想恢复对象时,我使用下面的代码:
// ostr is of type std::ostringstream
std::vector<Certificate *> newCRL;
{
std::istringstream ifs(ostr.str());
boost::archive::text_iarchive ia(ifs);
ia >> newCRL;
}
如果 ostr 长度短,我可以成功恢复原始对象,但我遇到的问题是 ostr 长。如果 ostr 很大,运行时会抛出以下异常:
std::length_error: basic_string::resize
我认为std::istringstream ifs(ostr.str());
是这个异常的来源。有什么解决方法可以用来重建大物体吗?