C++ VS2010 でアプリケーションを作成しています。
整数のベクトルがあります
0=93823
1=987283
2=3183723
3=8892328
4=98382391
等...
各値を個別に書き込む必要なく、このベクトルをファイルにすばやくシリアル化/逆シリアル化する方法はありますか (逆シリアル化はクロスプラットフォームです)。
お手伝いありがとう。
編集:
現在、ベクターをシリアル化および逆シリアル化する方法をいくつかのコードを投稿しています。私のやり方は非常に効率が悪いと感じています。
void CCompiler::CompileVector(FILE *outfile)
{
int iSize = nMap.Content().size();
fwrite(&iSize,sizeof(int),1,outfile);
for (int i=0;i<nMap.Content().size();i++)
{
fwrite( &nMap.Content()[i], sizeof(int), 1, outfile);
}
}
void CBinLoader::LoadVector(clsMapping &uMapping)
{
int iSizeMap = 0;
fread(&iSizeMap,sizeof(int),1,m_infile);
for(int i = 0; i < iSizeMap; i++)
{
int iByteStart=0;
fread(&iByteStart,sizeof(int),1,m_infile);
uMapping.Add(iByteStart);
}
}
ps: 私のクラス clsMapping にはいくつかのボイドがあります。ただし、「コンテンツ」は単なる vector です。