大对象的序列化 我正在用Boo::C++中的序列化库工作。 当我想还原对象时,我使用以下代码: // ostr is of type std::ostringstream std::vector<Certificate *> newCRL; { std::istringstream ifs(ostr.str()); boost::archive::text_iarchive ia(ifs); ia >> newCRL; }

大对象的序列化 我正在用Boo::C++中的序列化库工作。 当我想还原对象时,我使用以下代码: // ostr is of type std::ostringstream std::vector<Certificate *> newCRL; { std::istringstream ifs(ostr.str()); boost::archive::text_iarchive ia(ifs); ia >> newCRL; },c++,serialization,boost,boost-serialization,istringstream,C++,Serialization,Boost,Boost Serialization,Istringstream,我认为std::istringstream ifs(ostr.str())是此异常的来源。 在这方面有什么解决办法,我可以用来重建大对象吗?为什么不使用std::stringstream而不是使用单独的std::istringstream和std::ostringstreams?这个函数是否绝对需要使用stringstreams?如果可以,请避免将它们用作缓冲区,因为它们可能占用大量内存。可以直接从原始流中读取。@ildjarn:你说得对!我将更改代码,但异常仍然存在@MooingDuck:te

我认为
std::istringstream ifs(ostr.str())是此异常的来源。

在这方面有什么解决办法,我可以用来重建大对象吗?

为什么不使用
std::stringstream
而不是使用单独的
std::istringstream
std::ostringstream
s?这个函数是否绝对需要使用
stringstream
s?如果可以,请避免将它们用作缓冲区,因为它们可能占用大量内存。可以直接从原始流中读取。@ildjarn:你说得对!我将更改代码,但异常仍然存在@MooingDuck:text\u iarchive将istream作为输入参数。我将把ostr的类型改为stringstream,并将其输入到文本中,正如ildjam所说的那样。@ManiAmoozadeh:不,我的意思是,为什么一开始就有一个
ostr
?这是绝对必要的吗?
std::length_error: basic_string::resize