J'ai une classe qui contient un élément vector<bitset<N> > de longueur
variable. N est fixe. Je voudrais écrire le conteneur de ce vecteur dans
un fichier binaire.
Je pensais utiliser une fonction data() qui retournerait un char*.
Mais comme le vecteur peut avoir une taille importante (>10^9), je ne
voudrais pas l'avoir 2 fois en mémoire. En plus avec cette façon de
faire je devrais gérer la désallocation.
Ma question est donc : suis-je sur le droit chemin ? Suis-je passé à
côté d'une solution évidente/de la STL ?
Merci de votre aide.
KooK
static const int N=4;
class Suite
{
vector<bitset<N> > *suite;
char* _data; //? mon tampon de sortie
...
int dataSize()
{
//renvoie la taille de _data
}
};
int main(void)
{
//construit un vecteur de 1000 éléments
// soit 1000 *(N/8) = 500 octects
Suite ma_suite(1000);
//écriture dans un fichier binaire les 500 octets
ofstream fs("sortie.dat", ios_base::binary);
fs.write(ma_suite.data(), ma_suite.dataSize());
fs.close();
cerr << "le fichier a été écrit !\n";
}