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

Boost C++ Discussion :

Création des graphes à partir d'un fichier texte


Sujet :

Boost C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 338
    Points : 0
    Points
    0
    Par défaut Création des graphes à partir d'un fichier texte
    Bonsoir, j'ai écris un petit programme pour la création des graphes a partir d'un fichier texte en utilisant BOOST.
    l'idée est de lire un fichier texte de type: http://pastebin.com/g4cgaHJB
    et à chaque fois que je trouve t # id , je vais créer un graphe avec l'étiquette nb.
    par exemple (t # 1) correspond au graphe étiqueté 1.
    la même façon pour (v 1 11) qui correspond au noeud avec l'id 1 et l’étiquette 11
    (e 0 1 15) correspond a l’arête étiqueté 15 qui est entre le noeud avec id 0 et le noeud avec id 1.

    en premier temps j'ai commencer par les structures et la lecture du fichier .txt, (il me semble que ça marche)
    après la création des graphes voila le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    #include <iostream>
    #include <vector>
    #include <ctime>
    #include <set>
    #include <fstream>
    #include <string>
    #include <unordered_set>
    #include <cstdlib>
    #include <boost/algorithm/string/split.hpp>
    #include <boost/algorithm/string/classification.hpp>
    #include <boost/graph/adjacency_list.hpp>
    using namespace std;
    using namespace boost;
    using namespace boost::algorithm;
     
     
     
    /*********************************************/
    //vertex
    struct VertexProperties
    {
        int id;
        int label;
     
        VertexProperties(){}
        VertexProperties(unsigned i, unsigned l) : id(i), label(l) {}
    };
     
    //edge
    struct EdgeProperties
    {
        unsigned id;
        unsigned label;
        EdgeProperties(){}
        EdgeProperties(unsigned i, unsigned l) : id(i), label(l) {}
    };
     
    //Graph
    struct GraphProperties
    {
        unsigned id;
        unsigned label;
        GraphProperties()  {}
        GraphProperties(unsigned i, unsigned l) : id(i), label(l) {}
    };
     
     
    //adjency list
    typedef boost::adjacency_list<
        boost::vecS, boost::vecS, boost::directedS,
        VertexProperties,
        EdgeProperties,
        GraphProperties
    > Graph;
     
     
    //descriptors
    typedef boost::graph_traits<Graph>::vertex_descriptor vertex_t;
    typedef std::pair<boost::graph_traits<Graph>::edge_descriptor, bool> edge_t;
    //iterators
    typedef graph_traits<Graph>::vertex_iterator vertex_iter;
    typedef graph_traits<Graph>::edge_iterator edge_iter;
    /****************************************************************************/
    //le seuil int seuil;
    std::vector<std::string> tokens;
     
    /*
        programme principal
    */
    int main()
    {
     
     
        vector<Graph> dataG;  // vector<graphes> * pointsdataG;
     
        ifstream * file_reader= new ifstream("5.txt" ); //flux d'entrée pour opérer sur les fichiers.
     
        while (!file_reader->eof())
        {
            string line;
     
            file_reader->sync(); //Synchronise le tampon d'entree avec la source de donnees associee.
     
            getline(*file_reader, line); //lire les caracteres a partir du flux d'entree (file_reader) et les place dans une chaine: (line)
            if(line[0]=='t')  // ligne de transaction(graphe)
            {
     
                split(tokens, line, is_any_of(" "));
                int gid=atoi(tokens[2].c_str());
                Graph g(GraphProperties(gid,gid));
     
     
                cout<<gid<<endl;
                dataG.push_back(g);
            }
    }
            std::cout << "myvector contains:";
            for (std::vector<Graph>::iterator it = myvector.begin() ; it != myvector.end(); ++it)
            {
                std::cout << ' ' << (*it).label;
                std::cout << '\n';
            }
    }
    mais j'ai une erreur dans cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::cout << ' ' << (*it).id;
    je n'arrive pas a vérifier si les graphes sont vraiment créer avec un id juste !

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 073
    Points : 12 119
    Points
    12 119
    Par défaut
    Message d'erreur, SVP.

Discussions similaires

  1. Faire des courbes à partir d'un fichier texte
    Par AJ_ing dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 25/06/2012, 20h41
  2. [MySQL] récupérer des champs à partir d'un fichier texte
    Par sanouta dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/03/2010, 14h47
  3. lire des données à partir d'un fichier texte
    Par Flaherty Mc Coillean dans le forum C
    Réponses: 8
    Dernier message: 15/04/2009, 14h03
  4. Réponses: 1
    Dernier message: 21/09/2007, 12h10
  5. extraire des données à partir d'un fichier texte
    Par bigplayer dans le forum Langage
    Réponses: 3
    Dernier message: 03/04/2007, 21h33

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