struct结构里面有vector,直接保存struct时,vector是指针么?
struct testSt
{
vector<int> v_i;
};
void main()
{
//============================================
testSt tSt1;
tSt1.v_i.push_back(1);
tSt1.v_i.push_back(2);
testSt tSt2;
tSt2.v_i.push_back(3);
fout.open("c:\\a.txt");
fout.write((char *)(&tSt1), sizeof(a));
fout.write((char *)(&tSt2), sizeof(a));
这里读出来没有问题,
fout.close();
tSt1.v_i[0] = 3;
tSt1.v_i[1] = 4;
这里重新复制过后,即使没有写入文件,读出来也是新的值,即3和4了
testSt tempSt;
fin.open("c:\\a.txt");
fin.read((char *)(&tempSt), sizeof(a));
fin.read((char *)(&tempSt), sizeof(a));
fin.close();
}
这个有解决办法么,还是要vector里面逐项往文件写啊?