我有一个std::vector<int>
并且我想序列化它。为了这个目的,我想,当我的矢量这个副本将其复制到字符串流的字符使用std::stringstream
如何将二进制数据复制到字符串流
vector<int> v;
v.resize(10);
for (int i=0;i<10;i++)
v[i]=i;
stringstream ss (stringstream::in | stringstream::out |stringstream::binary);
然而
ostream_iterator<int> it(ss);
copy(v.begin(),v.end(),it);
是插入缓冲(_Strbuf)的值“123456789 “
我sucssesed写一个变通方法解决方案
for (int i=1;i<10;i++)
ss.write((char*)&p[i],sizeof(int));
我想通过使用STD函数像副本做类似第一种方式
感谢赫茨尔
我一般喜欢这种方法,但它往往是一个错误,盲目输出内存 喜欢这个。你仍然需要写一些能正确序列化每种类型的东西。 – 2011-02-01 15:14:55
完全同意。我绝不会在生产中使用这样的代码。我宁愿上面提到的“for”循环:-) – Stas 2011-02-01 15:16:28