我有一個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