我想要二进制序列化向量的数据。在下面的示例中,我将序列化为一个字符串,然后反序列化为一个向量,但不会获得我开始使用的相同数据。为什么会这样?向量序列化
vector<size_t> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
string s((char*)(&v[0]), 3 * sizeof(size_t));
vector<size_t> w(3);
strncpy((char*)(&w[0]), s.c_str(), 3 * sizeof(size_t));
for (size_t i = 0; i < w.size(); ++i) {
cout << w[i] << endl;
}
我希望得到的输出
1
2
3
而是得到输出
1
0
0
(上gcc-4.5.1)
@Mark:我不认为是这样。 – 2012-07-05 23:28:24