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 :

Itérator et bibliothèque standard


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2012
    Messages : 48
    Par défaut Itérator et bibliothèque standard
    Bonsoir à tous!
    Je sollicite un efois de plus votre aide pour la résolution d'un probléme qui me tracasse depuis un certain temps. Je veux en effet parcourir une bibliothéque (la bibliothèque list), mais je recois une message d'erreur me disant que list n'est pas déclarée.
    Je vous serai reconnaisant si vous m'aidiez à contourner cette difficulté. Pour être clair, pourquoi ce message d'erreur est affiché? Et comment y rémédier?
    Merci d'avance!

    Voici le code:

    Fen.h
    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
    #ifndef DEF_FEN
    #define DEF_FEN
     
    #include <QtGui>
     
     
    class Fen: public QDialog
    {
        Q_OBJECT
     
    public:
        Fene(QWidget *parent);
        ~Fen();
     
     
    private:
     
    };
    #endif
    Fen.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include "Fen.h"
     
    list<QString> nom;
    nom.append("Ali");
    nom.append("Baba");
    nom.append("Nounou");
     
    list<QString>::iterator it;
     
    for(it = nom.begin(); it != nom.end(); it++)
    {
      out<< *it
    }
    main.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include "Fen.h"
    #include <QApplication>
     
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
        PuriVec fen;
        fen.show();
     
        return app.exec();
    }

  2. #2
    Membre très actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 685
    Par défaut
    Bonjour,

    d'où vient ton type list ?

    s'il s'agit du conteneur std::list il faut ajouter (là où tu en as besoin, ici fen.cpp) #include <list> et un petit using namespace std; si tu ne veux pas avoir à préciser à chaque fois dans quel scope ce type se situe.

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Par défaut
    Si tu utilises Qt, utilise-le jusqu'au bout : QList et QStringList. On a rarement besoin de classes de la STL (comme std::list) dans un projet Qt.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2012
    Messages : 48
    Par défaut
    Merci cob59 et Kaamui!
    Vos réponses m'ont aidé.
    Le problème est résolu.
    Merci une fois de plus.

  5. #5
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Citation Envoyé par cob59 Voir le message
    Si tu utilises Qt, utilise-le jusqu'au bout : QList et QStringList. On a rarement besoin de classes de la STL (comme std::list) dans un projet Qt.
    Je ne suis pas trop d'accord. Si je devais faire un projet Qt, je séparerais la partie UI de la partie moteur, et dans la partie moteur, je m'interdirais d'utiliser quoi que ce soit lié à Qt.

    Et même dans la partie UI, je ne vois pas pourquoi je m'interdirais d'utiliser la bibliothèque standard (et d'ailleur plus std::vector que std::list). Disons que je n'ai rien vu dans les listes Qt qui me semble être un avantage concurrentiel sur les conteneurs utilisables partout en C++.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Par défaut
    Il sera toujours plus facile d'écrire, lire, gérer et documenter un code si le nombre de ses dépendances est minimal. En plus toutes les classes issues de QtGui se basent sur les "équivalents Qt" des conteneurs de la STL, donc il va devoir faire des conversions std::container <=> QContainer à n'en plus finir.

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2012
    Messages : 48
    Par défaut
    Salut cob59 et JolyLoic et merci pour vos commentaires.
    Disons plutot que j'au pu trouver mon compte dans ce que cob59 a donné comme, puisque je travaille en Qt. Son explication a résolu mon prblème.
    En pensant aux autres qui pouvaient etre interessés, je me dis qu'aucune idée ne devarit être rejetée du moment où elle aide. Pour ce que dis JolyLoic, j'ai encore á beaucoup travailler pour mieux cerner ses explications.
    Je vous dis merci pour vos commentaires.

  8. #8
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    Citation Envoyé par cob59 Voir le message
    Il sera toujours plus facile d'écrire, lire, gérer et documenter un code si le nombre de ses dépendances est minimal. En plus toutes les classes issues de QtGui se basent sur les "équivalents Qt" des conteneurs de la STL, donc il va devoir faire des conversions std::container <=> QContainer à n'en plus finir.
    Dans mon code qui utilise principalement la SL et qui passe des données à Qt, les conversions sont quasi toujours implicites et marquent les frontières entre les deux parties.

    C'est une bonne chose.

    Aussi, si tu dois utiliser Qt, alors SL n'est pas une dépéndance de plus, c'est Qt qui l'est. Dans l'idéal, c'est les spécificités de Qt que tu dois éviter pour maintenir du code portable (plus que ce que Qt permet) et qui pourrait bien être réutilisé sans Qt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ajouter strlcpy à la bibliothèque standard cyg1.7
    Par J4e8a16n dans le forum Bibliothèque standard
    Réponses: 1
    Dernier message: 25/04/2009, 12h23
  2. Réponses: 4
    Dernier message: 18/12/2007, 21h54
  3. Réponses: 2
    Dernier message: 19/09/2007, 17h37
  4. Réponses: 2
    Dernier message: 19/12/2006, 12h45
  5. Le type Arbre binaire dans les bibliothèques standards ?
    Par sam69 dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 10/05/2006, 13h50

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