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

SL & STL C++ Discussion :

utilisation de std::


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 80
    Par défaut utilisation de std::
    Bonjour,

    J'ai reçu un code que j'essaye de compiler sur mon PC.
    Il s'agit d'un programm codé en C++ et QT pour l'interface.

    Je me trouve face à une erreur de compilation, je pense qu'il manque un package ou quelque chose comme ça mais mes competences en programmation en me permette pas de trouver la source du probleme.
    Pouvez vous me donner quelques pistes de recherche concernant l'erreur suivante:

    concernant la ligne suivante à la fin d'une fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return equalSize && std::equal(c1.begin(), c1.end(), c2.begin());
    le compilateur me propose l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error: 'equal' is not a member of 'std'
    pourtant lorsque je cherche des exemples sur google, je vois que tout le monde utilise l'expression 'std::equal(..)'.
    Je ne comprend pas pourquoi ça ne marche pas chez moi.
    Quelqu'un peut il me guider dans mes recherches ????

    Merci d'avance !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 117
    Par défaut
    essaye en enlevant le std:: et vérifie si il y a bien #include <algorithm>

  3. #3
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par Myth_Titans
    essaye en enlevant le std:: et vérifie si il y a bien #include <algorithm>
    non le std:: doit y être...

    Par contre, c'est peut-être bien <algorithm> !!!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 117
    Par défaut
    oui t'a raison il faut sans doute le std::

  5. #5
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    il doit te manquer un include...
    Ca dépend du programme, mais il me semble (pas sur à 100%) que ça doit etre :
    #include <vector>
    ou <list>, ou autre chose....

    Regarde ce qu'utilise ton programme

  6. #6
    Membre confirmé Avatar de Mast3rMind
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2006
    Messages : 226
    Par défaut
    Au lieu de std::equal(), tu pourrais utiliser l'opérateur ==, non? Si c1 et c2 sont des string ca devrait fonctionner.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return ( equalSize && (c1 == c2) );

  7. #7
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 80
    Par défaut
    Je vous remercie tous.
    J'ai rajouté un include <algorithm> et l'erreur à disparue.

    Je tiens d'ailleurs a m'excuser car le réponse etait présente dans un autre topic du forum, il suffisait de bien chercher.

    Sinon j'ai une question pour ma culture générale.
    Comment expliquer que ce code marche sur certain machine (peut etre avec un OS different) et que moi je sois obligé de rajouter le include<algorithm> ???

  8. #8
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Simplement parce que le standard ne définit pas quel header du standard doit inclure d'autres headers, donc chaque implémentation a ses propres inclusions "parasites"

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

Discussions similaires

  1. Utilisation de std::chrono (C++ 2011)
    Par GillesM57330 dans le forum Qt
    Réponses: 2
    Dernier message: 03/03/2015, 10h39
  2. Utilisation de std::function pour créer un bouton
    Par Invité dans le forum SL & STL
    Réponses: 19
    Dernier message: 28/09/2014, 17h12
  3. utilisation de std::find( string )
    Par ccensam dans le forum SL & STL
    Réponses: 1
    Dernier message: 24/11/2006, 22h07
  4. utilisation des std::map
    Par guillaume16 dans le forum SL & STL
    Réponses: 9
    Dernier message: 25/07/2006, 16h56
  5. 3 précisions sur l'utilisation des "std::vector"
    Par Invité dans le forum SL & STL
    Réponses: 9
    Dernier message: 10/01/2006, 00h42

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