IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

sérialisation d'une hash_map


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 127
    Points : 49
    Points
    49
    Par défaut sérialisation d'une hash_map
    Bonjour, je désire sérialiser (en binaire) un objet de type __gnu_cxx::hash_map mais je ne vois pas bien la procédure à suivre,

    En fait il s'agit d'une hashmap avec des entiers non signés en clé et valeur . Cette hash_map code une table de correspondance entre des identifiants. Le nombre d'élément est de l'ordre du millions (de 1 à 15 millions grosso modo).


    Sur ma hash_map:

    __gnu_cxx::hash_map<unsigned int,unsigned int> corresp

    Je serais tenté de faire un simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    inline void ecrireBinaire(ostream& out, const value_type& v) {
        out.write((char*)&v, sizeof(v));
    }
    que j'appelerais sur la hash_map comme il suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ecrireBinaire( out, corresp);
    out étant un ostream.

    Je n'ai pas l'habitude de sérialiser en c++ d'où ma question: quelle est la meilleur solution? Je se souhaite le faire sans Boost car j'ai quelques soucis pour installer correctement Boost .

    Cordialement,

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour
    Citation Envoyé par Benoit_T Voir le message
    Je se souhaite le faire sans Boost car j'ai quelques soucis pour installer correctement Boost
    S'il s'agit de l'unique raison, alors peut être vaudrait mieux que tu réussisse à installer Boost et ensuite tu pourras l'utiliser pour ton problème de sérialisation.

    Citation Envoyé par Benoit_T Voir le message
    __gnu_cxx::hash_map<unsigned int,unsigned int> corresp

    Je serais tenté de faire un simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    inline void ecrireBinaire(ostream& out, const value_type& v) {
        out.write((char*)&v, sizeof(v));
    }
    que j'appelerais sur la hash_map comme il suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ecrireBinaire( out, corresp);
    Je doute fort que ce code réussisse à sauvegarder ta map. Je penses que tu dois faire ta sauvegarde et ta lecture des éléments à la main (si tu n'utilises pas Boost bien sûr).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 127
    Points : 49
    Points
    49
    Par défaut
    Ok merci, je vais me pencher sur boost et je vous signalerais éventuellement les difficultés que je rencontrerais.

    Cordialement,

Discussions similaires

  1. Sérialisation d'une Hashtable
    Par dolsky dans le forum VB.NET
    Réponses: 1
    Dernier message: 29/01/2009, 01h18
  2. sérialiser/désérialiser une Hashtable : pb de cast(?)
    Par zouzoute dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 02/02/2008, 15h22
  3. Problème d'insertion dans une hash_map STL
    Par Muetdhiver dans le forum SL & STL
    Réponses: 1
    Dernier message: 30/04/2007, 16h12
  4. Sérialisation d'une Windows Forms
    Par Plug dans le forum Windows Forms
    Réponses: 4
    Dernier message: 08/02/2007, 15h36
  5. Réponses: 3
    Dernier message: 20/10/2006, 19h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo