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 :

Problem avec std::vector


Sujet :

SL & STL C++

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 11
    Points
    11
    Par défaut Problem avec std::vector
    Bonjour,

    J'ai un petit souci avec les vector

    voila j'ai un pointeur de vector declarer comme ceci

    std::vector<std::string> * syllabe = new std::vector<std::string>();


    je le rempli ensuite avec la fonction membre push_back()

    mon probleme est quand j'utilise :

    std::string s = syllabe[0]

    vc++ me dit main.cpp(15) : error C2440: 'initialisation' : impossible de convertir de 'std::vector<_Ty>' en 'std::basic_string<_Elem,_Traits,_Ax>'
    with
    [
    _Ty=std::string
    ]
    and
    [
    _Elem=char,
    _Traits=std::char_traits<char>,
    _Ax=std::allocator<char>
    ]
    Aucun constructeur n'a pu prendre le type de source, ou la résolution de la surcharge du constructeur était ambiguë

    alors que normalement logiquement on peut utiliser un vector comme un tableau

    Merci de m'aider

    (PS : je n'ai pas envie d'utiliser les itérateurs)

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut !

    C'est parce que tu utilises un pointeur de vector...
    essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::string s = (*syllabe)[0];
    pour comprendre le mécanisme :

    appliquer l'opérateur [] à un pointeur : revient à faire l'opération suivante : Donc ce que tu faisait avec syllabe[0] c'est *syllabe autrement dit, tu essayais d'assigner un vector à un string, d'où le message d'erreur
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Et surtout, pourquoi as-tu besoin d'un pointeur sur vector ? Le but de ce genre de classe est justement de les éviter.

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 11
    Points
    11
    Par défaut
    merci Swoög c'était ca le blem

    @loulou24 ben parceque le vector est utilisé dans une fonction alors j'ai pas envie de recopier un vector 500 objet a chaque appel de la fonction, alors qu'un pointeur ne coute presque rien en espace memoire

  5. #5
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Citation Envoyé par boiteweb
    merci Swoög c'était ca le blem

    @loulou24 ben parceque le vector est utiliser dans une fonction alors j'ai pas envie de recopier un vector 500 objet a chaque appel de fonction alors qu'un pointeur ne coute presque rien en espace memoire

    Content d'avoir pu t'aider !

    pour la seconde remarque, je te signalerais qu'en C++, il existe le passage par référence qui permet d'éviter justement les copies ET les pointeurs
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Citation Envoyé par boiteweb
    @loulou24 ben parceque le vector est utiliser dans une fonction alors j'ai pas envie de recopier un vector 500 objet a chaque appel de fonction alors qu'un pointeur ne coute presque rien en espace memoire
    Je ne vois pas le rapport entre la manière dont tu manipules ton vecteur, et la manière dont tu vas le passer en paramètre pour éviter des copies inutiles. Et pour ça, les références sont de toute façon à préférer aux pointeurs.

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

Discussions similaires

  1. Probleme avec std::vector push_back
    Par raphchar dans le forum C++
    Réponses: 4
    Dernier message: 19/12/2011, 14h18
  2. Probleme avec std::vector
    Par dhoorens dans le forum SL & STL
    Réponses: 2
    Dernier message: 12/03/2007, 16h51
  3. Probleme avec std::map
    Par olive_le_malin dans le forum SL & STL
    Réponses: 14
    Dernier message: 27/02/2007, 09h58
  4. Problème avec std::vector
    Par dhoorens dans le forum SL & STL
    Réponses: 4
    Dernier message: 31/12/2006, 14h27
  5. Problème avec std::Vector
    Par mister3957 dans le forum SL & STL
    Réponses: 8
    Dernier message: 16/02/2006, 10h18

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